[ https://issues.apache.org/jira/browse/GROOVY-11474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles resolved GROOVY-11474. ---------------------------------- Fix Version/s: 5.0.0-alpha-11 Resolution: Fixed https://github.com/apache/groovy/commit/dc3053779f3b83b21a401454418f1eeafbc27e71 > 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)