A generic class can't have static fields error when a subclass of Parser is used inside a macro
I created a subclass of Parser, and I tried to use it inside a macro. It failed with compiler error "A generic class can't have static fields".
As you can see in #61, I was able to get my Parser subclass working inside a macro by fencing static public macro function parse(). However, I understand that this isn't the correct solution.
I suppose that a similar workaround that I can use for now is to copy all of the code except static public macro function parse() from Parser into a new class, and use that copy instead. However, I would prefer to use the real Parser so that I don't need to manually merge any changes that you make to hxparse in the future.
Another workaround that seems to work for me is to fence the @:generic meta, while keeping static public macro function parse().
#if !macro
@:generic
#end
Just in case it's relevant, my use-case is creating a custom parser for some kind of markup language. The idea is that I would use this parser in a macro to dynamically generate a TypeDefinition and call Context.defineType().
Another workaround that seems to work for me is to fence the
@:genericmeta, while keepingstatic public macro function parse().#if !macro @:generic #end
That looks like a good idea!