Stefanos Chaliasos created GROOVY-10081: -------------------------------------------
Summary: Conversion from int to byte does not work in case of ternary operator Key: GROOVY-10081 URL: https://issues.apache.org/jira/browse/GROOVY-10081 Project: Groovy Issue Type: Bug Reporter: Stefanos Chaliasos I have the following Groovy program. {code:groovy} @groovy.transform.CompileStatic public class Main { static byte x = 1; public static byte foo() { 1 } public static void main(String[] args) { x = (true) ? 0 : foo() // this does not work // the following works if (true) { x = 0 } else { x = foo() } byte y = (true) ? 0 : foo() // this doesn't work as well } } {code} h2. Actual Behavior The program does not compile, and I get the following error. {code:java} org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: Main.groovy: 11: [Static type checking] - Possible loss of precision from int to byte @ line 11, column 9. x = (true) ? 0 : foo() ^ Main.groovy: 20: [Static type checking] - Possible loss of precision from int to byte @ line 20, column 14. byte y = (true) ? 0 : foo() ^ 2 errors {code} h2. Expected Behavior Compile successfully. h2. Affected Version This programs fails when compiled with the compiler from the master (commit: a8023b1b0d1d79800677ce2b4665ee3fb14688f4), 4.0.0-alpha-2, and 3.0.8. -- This message was sent by Atlassian Jira (v8.3.4#803005)