Paul King created GROOVY-10954: ---------------------------------- Summary: Flow typing anomaly with multi-assignment Key: GROOVY-10954 URL: https://issues.apache.org/jira/browse/GROOVY-10954 Project: Groovy Issue Type: Improvement Reporter: Paul King
The following method compiles fine. Flow typing is used for type inference on {{a}}. {code} @groovy.transform.TypeChecked def method1() { def a = 42 assert a.intValue() == 42 a = 'ant' assert a.toUpperCase() == 'ANT' } method1() {code} The following method, which differs only that multi-assignment (with one assignment in this case) is in use, fails to compile: {code} @groovy.transform.TypeChecked def method2() { def (b) = [42] assert b.intValue() == 42 (b) = ['bee'] // Cannot assign value of type java.lang.String to variable of type int assert b.toUpperCase() == 'BEE' // Cannot find matching method int#toUpperCase() } method2() {code} I can't recall any discussion about why we wouldn't support the second example. -- This message was sent by Atlassian Jira (v8.20.10#820010)