[ https://issues.apache.org/jira/browse/GROOVY-9058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16832417#comment-16832417 ]
Paul King commented on GROOVY-9058: ----------------------------------- [~emilles] I think [~blackdrag] is correct here and that the whole if statement should be deleted rather than augmented with your proposed change. I suspect that the if statement was needed at some point but became obsolete when some other parts of the type checker were improved and handled the case it was trying to deal with. Certainly the tests committed along with that if statement and the one here (and the whole test suite) all pass with the if statement removed. I'll create a PR. > each parameter type not correctly inferenced > -------------------------------------------- > > Key: GROOVY-9058 > URL: https://issues.apache.org/jira/browse/GROOVY-9058 > Project: Groovy > Issue Type: Bug > Components: Static compilation > Affects Versions: 2.5.6 > Reporter: Mauro Molinari > Priority: Major > > Consider this Java class: > {code:java} > package test51; > import java.util.List; > public class Foo { > public List<Object[]> bar() { return null; } > }{code} > and this Groovy class: > {code:java} > package test51 > import groovy.transform.CompileStatic > @CompileStatic > class Test51 { > protected void foo() { > List<Object[]> foo = new Foo().bar() > foo.each { row -> > def o = row[0] > } > } > > List bar() { > } > }{code} > This produces a compiler error because {{row}} is resolved as {{Object}} > rather than {{Object[]}}. > A workaround is to declare {{row}} as {{Object[] row}} in the closure > parameter list. -- This message was sent by Atlassian JIRA (v7.6.3#76005)