You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Alexey Afanasiev (JIRA)" <ji...@apache.org> on 2017/09/07 16:15:01 UTC
[jira] [Created] (GROOVY-8310) Strange @CompileStatic check in
Closure
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)