[ 
https://issues.apache.org/jira/browse/GROOVY-10505?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Milles updated GROOVY-10505:
---------------------------------
    Fix Version/s:     (was: 5.0.0-alpha-1)

> TraitComposer should mark generated methods as @Generated
> ---------------------------------------------------------
>
>                 Key: GROOVY-10505
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10505
>             Project: Groovy
>          Issue Type: Improvement
>          Components: Compiler
>    Affects Versions: 2.5.14
>            Reporter: Alar Aule
>            Assignee: Paul King
>            Priority: Minor
>             Fix For: 2.5.16, 3.0.10, 4.0.1
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> I have been marking Grails generated methods as Generated, but there are 
> still open cases and those should be resolved in groovy. 
> [https://github.com/grails/grails-core/issues/11318]
> In Grails with Controllers there is heavy use of Traits and
> {{org.codehaus.groovy.transform.trait.TraitComposer}} class doesn't mark all 
> its generated methods as Generated.
> Example of trait composition:
> {code:java}
>         trait TraitA {
>             private String variableA
>             
>             @groovy.transform.Generated
>             String methodA() { "method" }
>         }
>         trait TraitB {
>             private String variableB
>             
>             @groovy.transform.Generated
>             String methodB() { "i'm method too" }
>         }
>         trait TraitComposeAB implements TraitA, TraitB {
>             
>         }
>         class ClassUnderTest implements TraitComposeAB {
>             
>         }
> {code}
> For ClassUnderTest the TraitComposer will add methods for traits variables:
> {noformat}
> "public java.lang.String ClassUnderTest.TraitB__variableB$get()"
> "public java.lang.String ClassUnderTest.TraitA__variableA$get()"
> "public java.lang.String 
> ClassUnderTest.TraitA__variableA$set(java.lang.String)"
> "public java.lang.String 
> ClassUnderTest.TraitB__variableB$set(java.lang.String)"
> {noformat}
> and for methods:
> {noformat}
> "public java.lang.String ClassUnderTest.TraitAtrait$super$methodA()"
> "public java.lang.String ClassUnderTest.TraitBtrait$super$methodB()"
> {noformat}
> Those methods I think should be marked as Generated.
> Will provide pull-request soon.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to