groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Afanasiev (JIRA)" <j...@apache.org>
Subject [jira] [Created] (GROOVY-8310) Strange @CompileStatic check in Closure
Date Thu, 07 Sep 2017 16:15:01 GMT
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)

Mime
View raw message