[jira] [Created] (GROOVY-8310) Strange @CompileStatic check in Closure

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (GROOVY-8310) Strange @CompileStatic check in Closure

JIRA jira@apache.org
Alexey Afanasiev created GROOVY-8310:
----------------------------------------

             Summary: Strange @CompileStatic check in Closure
                 Key: GROOVY-8310
                 URL: https://issues.apache.org/jira/browse/GROOVY-8310
             Project: Groovy
          Issue Type: Bug
          Components: Static compilation, Static Type Checker
            Reporter: Alexey Afanasiev


This code compiles normal:
{code}
@CompileStatic
class B {
    public <T> T bar(Closure<Collection<Integer>> a) {
        return null
    }

    def use() {
       bar {
            [1]
        }
    }
}
{code}

Switching return type cause error in code:
{code}
import groovy.transform.CompileStatic

@CompileStatic
class B {
    public def bar(Closure<Collection<Integer>> a) {
        return null
    }

    def use() {
        bar { // Error:(21, 9) Groovyc: [Static type checking] - Cannot find matching method pack.B#bar(groovy.lang.Closure <java.util.List>).
            [1]
        }
    }
}
{code}

I believe first example should have error too.  But probably after fixing in that way following code will be broken:
{code}
def foo() {
        def nums = [1]
        def res = nums.collectMany { [it] }
    }
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)