You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Vladimír Oraný (JIRA)" <ji...@apache.org> on 2017/08/04 10:29:05 UTC
[jira] [Created] (GROOVY-8276) `.&` should return `MethodClosure`
instead of just `Closure`
Vladimír Oraný created GROOVY-8276:
--------------------------------------
Summary: `.&` should return `MethodClosure` instead of just `Closure`
Key: GROOVY-8276
URL: https://issues.apache.org/jira/browse/GROOVY-8276
Project: Groovy
Issue Type: Improvement
Components: Compiler
Reporter: Vladimír Oraný
if you get method handle using `.&` notation the retrieved object is of type `Closure`. It should be method closure instead. Following code should compile:
{code}
@CompileStatic
void doSomething(MethodClosure methodClosure) {
this.doSomething(this.&doSomething)
}
{code}
One of the use cases I'm currently working on is a type-safe DSL which accepts method closure to test given method. I would like to be sure that none passes in regular closure. At the moment, I need to do
{code}
if (!(method instanceof MethodClosure)) {
throw new IllegalArgumentException("Closure must be method closure. Use object.&methodname to get type safe method closure!")
}
{code}
To achieve similar behavior.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)