Browse Source

Mark enum member values as public on supported Julia versions (#12)

pull/13/head v1.0.5
PatrickHaecker 8 months ago committed by GitHub
parent
commit
c850aa7c65
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      Project.toml
  2. 6
      src/EnumX.jl
  3. 10
      test/runtests.jl

2
Project.toml

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
name = "EnumX"
uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56"
version = "1.0.4"
version = "1.0.5"
[compat]
julia = "1.6"

6
src/EnumX.jl

@ -133,6 +133,12 @@ function enumx(_module_, args) @@ -133,6 +133,12 @@ function enumx(_module_, args)
EnumX.symbol_map(::Base.Type{$(esc(T))}) = $(name_value_map)
end
end
if VERSION >= v"1.11.0-DEV.469"
push!(
module_block.args,
esc(Expr(:public, values(value_name_map)...))
)
end
for (k, v) in name_value_map
push!(
module_block.args,

10
test/runtests.jl

@ -16,7 +16,6 @@ const Ananab = -1 @@ -16,7 +16,6 @@ const Ananab = -1
@enumx Fruit Apple Banana
@test Fruit isa Module
@test Set(names(Fruit)) == Set([:Fruit])
@test_broken Set(names(Fruit; all = true)) == Set([:Fruit, :Apple, :Banana, :T])
@test issubset(Set([:Fruit, :Apple, :Banana, :T]), Set(names(Fruit; all = true)))
@test Fruit.T <: EnumX.Enum{Int32} <: Base.Enum{Int32}
@ -48,6 +47,15 @@ const Ananab = -1 @@ -48,6 +47,15 @@ const Ananab = -1
@test_throws ArgumentError("invalid value for Enum Fruit: 123.") Fruit.T(Int32(123))
@test_throws ArgumentError("invalid value for Enum Fruit: 123.") Fruit.T(123)
# Public enum member values (#11)
if VERSION >= v"1.11.0-DEV.469"
@test Set(names(Fruit)) == Set([:Fruit, :Apple, :Banana])
@test Base.ispublic(Fruit, :Apple)
@test Base.ispublic(Fruit, :Banana)
else
@test Set(names(Fruit)) == Set([:Fruit])
end
@test Fruit.Apple < Fruit.Banana
let io = IOBuffer()

Loading…
Cancel
Save