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)

Reply via email to