Repository: incubator-groovy
Updated Branches:
  refs/heads/GROOVY_2_4_X e725edbeb -> b536299f5


GROOVY-7631: If p is a primitive value, p != null returns false when statically 
compiled (closes #148)


Project: http://git-wip-us.apache.org/repos/asf/incubator-groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-groovy/commit/b536299f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-groovy/tree/b536299f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-groovy/diff/b536299f

Branch: refs/heads/GROOVY_2_4_X
Commit: b536299f5ec1ff860e710e0a18c4adea190ec38e
Parents: e725edb
Author: Shil S <shil.si...@gmail.com>
Authored: Sun Oct 18 18:09:05 2015 -0400
Committer: pascalschumacher <pascalschumac...@gmx.net>
Committed: Mon Oct 19 18:27:37 2015 +0200

----------------------------------------------------------------------
 .../sc/transformers/CompareToNullExpression.java    |  2 +-
 .../classgen/asm/sc/BugsStaticCompileTest.groovy    | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/b536299f/src/main/org/codehaus/groovy/transform/sc/transformers/CompareToNullExpression.java
----------------------------------------------------------------------
diff --git 
a/src/main/org/codehaus/groovy/transform/sc/transformers/CompareToNullExpression.java
 
b/src/main/org/codehaus/groovy/transform/sc/transformers/CompareToNullExpression.java
index c082031..723be81 100644
--- 
a/src/main/org/codehaus/groovy/transform/sc/transformers/CompareToNullExpression.java
+++ 
b/src/main/org/codehaus/groovy/transform/sc/transformers/CompareToNullExpression.java
@@ -62,7 +62,7 @@ public class CompareToNullExpression extends BinaryExpression 
implements Opcodes
             ClassNode top = controller.getOperandStack().getTopOperand();
             if (ClassHelper.isPrimitiveType(top)) {
                 controller.getOperandStack().pop();
-                mv.visitInsn(ICONST_0);
+                mv.visitInsn(equalsNull ? ICONST_0 : ICONST_1);
                 controller.getOperandStack().push(ClassHelper.boolean_TYPE);
                 return;
             }

http://git-wip-us.apache.org/repos/asf/incubator-groovy/blob/b536299f/src/test/org/codehaus/groovy/classgen/asm/sc/BugsStaticCompileTest.groovy
----------------------------------------------------------------------
diff --git 
a/src/test/org/codehaus/groovy/classgen/asm/sc/BugsStaticCompileTest.groovy 
b/src/test/org/codehaus/groovy/classgen/asm/sc/BugsStaticCompileTest.groovy
index 922448e..1e36507 100644
--- a/src/test/org/codehaus/groovy/classgen/asm/sc/BugsStaticCompileTest.groovy
+++ b/src/test/org/codehaus/groovy/classgen/asm/sc/BugsStaticCompileTest.groovy
@@ -1410,5 +1410,21 @@ println someInt
             new A()
         '''
     }
+
+    // GROOVY-7631
+    void testPrimitiveNotEqualNullShouldReturnTrue() {
+        assertScript '''
+            assert false != null
+            assert true != null
+            assert (byte) 1 != null
+            assert (short) 1 != null
+            assert 0 != null
+            assert 1 != null
+            assert 1L != null
+            assert 1f != null
+            assert 1d != null
+            assert (char) 1 != null
+        '''
+    }
 }
 

Reply via email to