Description
I can't find anything about this in http://docs.groovy-lang.org/next/html/documentation/core-traits.html – apologies if I missed it elsewhere. Also could not find a similar issue.
I am applying a transform that references properties in a class, the transformed class also implements a trait with properties. It seems that the trait transform is applied last, such that the annotation-driven AST transforms don't see 'inherited/mixed in' trait properties.
import groovy.transform.* trait T { String s1 } @TupleConstructor(includes='s1, s2') // only a constructor for s2 created, same applies to @EqualsAndHashCode for example. // @Sortable(includes='s1, s2') // Error during @Sortable processing: tried to include unknown property 's1' class Bar implements T { String s2 }
This http://docs.groovy-lang.org/next/html/documentation/core-traits.html#_compatibility_with_ast_transformations talks about applying transforms on a trait itself, but as per above, this isn't what I'm doing.
Is this behaviour by design, or am I missing something obvious?
Thanks for your help.