You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2015/10/19 18:27:13 UTC

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

Repository: incubator-groovy
Updated Branches:
  refs/heads/master 9255897e7 -> 78f0b9753


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/78f0b975
Tree: http://git-wip-us.apache.org/repos/asf/incubator-groovy/tree/78f0b975
Diff: http://git-wip-us.apache.org/repos/asf/incubator-groovy/diff/78f0b975

Branch: refs/heads/master
Commit: 78f0b9753554f926208a6e3ed4a01e092e39af29
Parents: 9255897
Author: Shil S <sh...@gmail.com>
Authored: Sun Oct 18 18:09:05 2015 -0400
Committer: pascalschumacher <pa...@gmx.net>
Committed: Mon Oct 19 18:26:19 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/78f0b975/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/78f0b975/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
+        '''
+    }
 }