[ https://issues.apache.org/jira/browse/GROOVY-11311?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17820495#comment-17820495 ]
Eric Milles commented on GROOVY-11311: -------------------------------------- When a closure parameter or its type is annotated, what expectation should we have for the generated methods like {{call}} and {{doCall}}. Similarly for an annotated shared variable, should its annotations pass along to the generated field or accessor? [~blackdrag] [~paulk] > 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 > Assignee: Eric Milles > Priority: Minor > 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)