You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2022/02/23 23:44:00 UTC

[jira] [Commented] (GROOVY-10505) TraitComposer should mark generated methods as @Generated

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

Eric Milles commented on GROOVY-10505:
--------------------------------------

https://github.com/apache/groovy/commit/0ddb1493672deecd40281d2eb03da80803bc4411

> 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
>            Priority: Minor
>
> 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)