Alar Aule created GROOVY-10505:
----------------------------------

             Summary: 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


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.1#820001)

Reply via email to