You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Alar Aule (Jira)" <ji...@apache.org> on 2022/02/22 18:30:00 UTC
[jira] [Created] (GROOVY-10505) TraitComposer should mark generated methods as @Generated
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)