[ 
https://issues.apache.org/jira/browse/GROOVY-7950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15580650#comment-15580650
 ] 

Kamal Advani commented on GROOVY-7950:
--------------------------------------

Thanks very much for the detailed explanation and rationale, Paul. I'll try to 
understand the 'Inspect AST' output better. Apologies for the delayed response, 
was on holiday.

As an aside, besides tuple constructors and similar, I'm also using traits to 
pull out Hibernate properties (without resorting to @MappedSuperclass and 
introducing annoying additional hierarchies because my single-inheritance quota 
has been used up!). These details will definitely help me figure out if what 
I'm doing is actually feasible, or much too hacky.

> AST transforms referencing properties on a class not detecting Trait-mixed in 
> properties
> ----------------------------------------------------------------------------------------
>
>                 Key: GROOVY-7950
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7950
>             Project: Groovy
>          Issue Type: Bug
>          Components: ast builder
>    Affects Versions: 2.4.7
>            Reporter: Kamal Advani
>
> 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.
> {code}
> 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
> }
> {code}
> 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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to