[ https://issues.apache.org/jira/browse/GROOVY-7631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14962602#comment-14962602 ]
Shil Sinha edited comment on GROOVY-7631 at 10/18/15 9:16 PM: -------------------------------------------------------------- I tested this on 2.0.0, 2.0.8, 2.1.9, 2.2.2 and 2.3.11; the behavior is the same across those versions. Edit: This seems to be an issue for all primitive values, not just 0. Example: {code} @groovy.transform.CompileStatic void test() { // these all fail assert true != null assert (byte) 1 != null assert (short) 1 != null assert 1 != null assert 1L != null assert 1f != null assert 1d != null assert (char) 1 != null } test() {code} If the types above are replaced with their wrapper types, the test passes. The relevant code appears to be in CompareToNullExpression.visit was (Author: shils): I tested this on 2.0.0, 2.0.8, 2.1.9, 2.2.2 and 2.3.11; the behavior is the same across those versions. > @CompileStatic compiles 0 != null to false > ------------------------------------------ > > Key: GROOVY-7631 > URL: https://issues.apache.org/jira/browse/GROOVY-7631 > Project: Groovy > Issue Type: Bug > Components: Static compilation > Affects Versions: 2.4.5 > Reporter: Kevin Gu > Assignee: Cédric Champeau > > import groovy.transform.*; > // @CompileStatic > class Bug { > void exec() { > println 0 != null > } > } > new Bug().exec() > The above code prints "true". But when @CompileStatic is umcommented, it > prints "false". -- This message was sent by Atlassian JIRA (v6.3.4#6332)