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)