[ https://issues.apache.org/jira/browse/GROOVY-8084?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-8084: -------------------------------- Language: groovy > Captured types doesn't work in @CompileStatic > --------------------------------------------- > > Key: GROOVY-8084 > URL: https://issues.apache.org/jira/browse/GROOVY-8084 > Project: Groovy > Issue Type: Bug > Components: Static compilation, Static Type Checker > Affects Versions: 2.4.8 > Reporter: Alexey Afanasiev > Assignee: Daniel Sun > Priority: Major > Fix For: 3.0.0-alpha-4, 2.5.3 > > > This code could be successfully compiled and executed. > {code} > @CompileStatic > static def method(List<? extends Serializable> captured) { > captured.add('some string') > return captured > } > println method(new ArrayList<Integer>()) > {code} > Looks like type check in groovy doesn't work with captured types. Is it a bug? > Is there any documentation about generics in groovy? > P.S.: > Another kind of strange behaviour: > {code} > @CompileStatic > static def method() { > List<Integer> list = new ArrayList<>() > List<? extends Serializable> captured = list > captured.add('some string') //Error:(7, 5) Groovyc: [Static type > checking] - Cannot call java.util.ArrayList > <java.lang.Integer>#add(java.lang.Integer) with arguments [java.lang.String] > return captured > } > {code} > Somehow type checking infered type of 'captured' variable to > java.util.ArrayList <java.lang.Integer> -- This message was sent by Atlassian Jira (v8.20.10#820010)