[ https://issues.apache.org/jira/browse/GROOVY-11311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17817182#comment-17817182 ]
Jochen Theodorou commented on GROOVY-11311: ------------------------------------------- I am a bit surprised because you check the call method. I was under the impression we generate only a doCall method, which I am sure is happening... yes, verified that. Dow anyone remember why we decided to create call-methods additionally to the doCall-methods? > Groovy Closure not retaining param annotations, but only for the default > single object param case > ------------------------------------------------------------------------------------------------- > > Key: GROOVY-11311 > URL: https://issues.apache.org/jira/browse/GROOVY-11311 > Project: Groovy > Issue Type: Bug > Affects Versions: 3.0.8, 4.0.4 > Reporter: Val E > Priority: Major > Attachments: ClosureAnnotationsTest.groovy > > > In trying to process Groovy closure param annotations, via Java reflection, I > realized that there is one narrow case where the param annotations are not > preserved in the generated call method. > This happens only for the case of a single Object param type. All other > variations retain the annotation, it can be a single param of a different > type, or multiple params of Object type. I think this may have something to > do with handling the default 'it' param > ex: > {code:java} > {@TESTANNO def x-> } //wont retain @TESTANNO > {code} > {code:java} > {@TESTANNO Object x-> } //wont retain @TESTANNO > {code} > {code:java} > {@TESTANNO Integer x-> } //will retain @TESTANNO > {code} > {code:java} > {@TESTANNO def x, @TESTANNO def y-> }//will retain @TESTANNO on both x and y > {code} > > Attached a basic groovy script to demonstrate. > -- This message was sent by Atlassian Jira (v8.20.10#820010)