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

ASF GitHub Bot commented on GROOVY-11432:
-----------------------------------------

paulk-asert commented on PR #2097:
URL: https://github.com/apache/groovy/pull/2097#issuecomment-2210872828

   I'll write an email to the dev list shortly and await feedback before 
merging. As currently designed, it works for dynamic Groovy and fails when 
using static compilation. This is kind of as I'd expect since we have a 
"dangling" method reference not associated with a functional interface. But we 
could also make some assumptions and use a `Consumer` and make it work for 
statically compiled code.




> Explore whether we should add method references to annotations
> --------------------------------------------------------------
>
>                 Key: GROOVY-11432
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11432
>             Project: Groovy
>          Issue Type: Improvement
>            Reporter: Paul King
>            Priority: Major
>
> The topic (for Java) appeared on social media recently:
> https://twitter.com/GeoffreyDeSmet/status/1808216150867861896
> Java thought it might be a good idea a while back but thought it would be 
> hard to implement:
> https://mail.openjdk.org/pipermail/core-libs-dev/2018-November/056596.html
> For us we could use a Class typed annotation attribute and do like we 
> currently do for closures, e.g.:
> {code}
> @interface UIColorAnnotation {
>     Class method()
> }
> @UIColorAnnotation(method = Person::getAgeColor)
>     public int getAge() {
>     }
>     ...
> {code}
> Since we already support closures, my thinking is to make the above exactly 
> equivalent to:
> {code}
> @UIColorAnnotation(method = { with(Person::getAgeColor) })
>     public int getAge() {
>     }
>     ...
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to