class A
enum FooBar
Foo
Bar
end
macro is_enum(_type)
{% p "#{_type} is enum: #{_type.is_a?(Enum)}" %}
end
is_enum(FooBar)
end
Prints "FooBar is enum: false" :cry:
_Already tried _type.resolve.is_a?(Enum), no luck too._
You can use _type.resolve < Enum.
class A
enum FooBar
Foo
Bar
end
macro is_enum(_type)
{% p "#{_type} is enum: #{_type.resolve < Enum}" %}
end
is_enum(FooBar)
end
Prints "FooBar is enum: true"
is_a? in macros check if a node is of a given AST node type. Use type < ::Enum like @firejox says
Most helpful comment
You can use _type.resolve < Enum.
Prints "FooBar is enum: true"