You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by sh...@apache.org on 2016/01/16 23:21:54 UTC

groovy git commit: GROOVY-6958 null != NullObject when using categories Closes #207

Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_4_X 7a2baa556 -> 32706bf7e


GROOVY-6958 null != NullObject when using categories
Closes #207


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

Branch: refs/heads/GROOVY_2_4_X
Commit: 32706bf7eead9710e3aa314426eb8fbe643cef64
Parents: 7a2baa5
Author: Shil Sinha <sh...@apache.org>
Authored: Wed Dec 9 00:03:43 2015 -0500
Committer: Shil Sinha <sh...@apache.org>
Committed: Sat Jan 16 17:17:33 2016 -0500

----------------------------------------------------------------------
 .../typehandling/DefaultTypeTransformation.java     |  3 ++-
 .../codehaus/groovy/runtime/NullObjectTest.groovy   | 16 ++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/32706bf7/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java b/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
index 1742330..95ddc00 100644
--- a/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
+++ b/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
@@ -602,7 +602,8 @@ public class DefaultTypeTransformation {
 
     public static boolean compareEqual(Object left, Object right) {
         if (left == right) return true;
-        if (left == null || right == null) return false;
+        if (left == null) return right instanceof NullObject;
+        if (right == null) return left instanceof NullObject;
         if (left instanceof Comparable) {
             return compareToWithEqualityCheck(left, right, true) == 0;
         }

http://git-wip-us.apache.org/repos/asf/groovy/blob/32706bf7/src/test/org/codehaus/groovy/runtime/NullObjectTest.groovy
----------------------------------------------------------------------
diff --git a/src/test/org/codehaus/groovy/runtime/NullObjectTest.groovy b/src/test/org/codehaus/groovy/runtime/NullObjectTest.groovy
index a7afa06..05ad71d 100644
--- a/src/test/org/codehaus/groovy/runtime/NullObjectTest.groovy
+++ b/src/test/org/codehaus/groovy/runtime/NullObjectTest.groovy
@@ -100,11 +100,27 @@ class NullObjectTest extends GroovyTestCase {
         }
         assert a == 2
     }
+
+    void testEqualsInCategory() {
+        def val = null
+        use (MyCategory) {
+            assert val.isNull()
+            assert val.isNull2()
+        }
+    }
 }
 
 class MyCategory {
     public static String toString(NullObject obj) {
         return ""
     }
+
+    static boolean isNull(value) {
+        value == null
+    }
+
+    static boolean isNull2(value) {
+        null == value
+    }
 }