[ https://issues.apache.org/jira/browse/GROOVY-11474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King closed GROOVY-11474. ------------------------------ > flow typing on loops can introduce type unsafety > ------------------------------------------------ > > Key: GROOVY-11474 > URL: https://issues.apache.org/jira/browse/GROOVY-11474 > Project: Groovy > Issue Type: Bug > Components: Static Type Checker > Reporter: Thodoris Sotiropoulos > Assignee: Eric Milles > Priority: Minor > Fix For: 5.0.0-alpha-11 > > > I have the following program > {code:java} > class Test { > public static void main(String[] args) { > def x = 1 > while (true) { > Integer y = x > x = "" > > } > } > }{code} > h3. Actual behavior > The code compiles, but I get a CCE at runtime: > {code:java} > Exception in thread "main" > org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast > object '' with class 'java.lang.String' to class 'java.lang.Integer' > at > org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToNumber(DefaultTypeTransformation.java:177) > at > org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.continueCastOnNumber(DefaultTypeTransformation.java:294) > at > org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.castToType(DefaultTypeTransformation.java:248) > at > org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:336) > at Test.main(test.groovy:5) > {code} > h3. Expected behavior > The code should have been rejected. -- This message was sent by Atlassian Jira (v8.20.10#820010)