[ https://issues.apache.org/jira/browse/GROOVY-11335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-11335: --------------------------------- Fix Version/s: 4.0.20 > STC: for loop element type inference with multiple instanceof > ------------------------------------------------------------- > > Key: GROOVY-11335 > URL: https://issues.apache.org/jira/browse/GROOVY-11335 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker > Reporter: Eric Milles > Assignee: Eric Milles > Priority: Major > Fix For: 5.0.0-alpha-7, 4.0.20 > > > Consider the following: > {code:groovy} > @groovy.transform.TypeChecked > void test(obj) { > if (obj instanceof Collection) { > if (obj instanceof Serializable) { > for (item in obj) { > println item > } > } > } > } > {code} > The inferred type of "obj" is (Collection & Serializable). The loop element > check fails with: > {code} > java.lang.UnsupportedOperationException > at > org.codehaus.groovy.transform.stc.UnionTypeClassNode.getComponentType(UnionTypeClassNode.java:232) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferLoopElementType(StaticTypeCheckingVisitor.java:2042) > at > org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitForLoop(StaticTypeCheckingVisitor.java:2008) > at org.codehaus.groovy.ast.stmt.ForStatement.visit(ForStatement.java:47) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)