summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-05-16 14:42:45 +0000
committerMartin Odersky <odersky@gmail.com>2007-05-16 14:42:45 +0000
commit6a33d831d2d25165bef5789c44e22548acb4646f (patch)
treec65f84be36340e295d6f21d04ad94edf3b580041
parent31cb1f9613b712d9a06ca7de76437a58da75a4af (diff)
downloadscala-6a33d831d2d25165bef5789c44e22548acb4646f.tar.gz
scala-6a33d831d2d25165bef5789c44e22548acb4646f.tar.bz2
scala-6a33d831d2d25165bef5789c44e22548acb4646f.zip
fix^2 bug1111
-rw-r--r--src/library/scala/runtime/Comparator.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/library/scala/runtime/Comparator.java b/src/library/scala/runtime/Comparator.java
index 968dbba3c1..c73c7506ba 100644
--- a/src/library/scala/runtime/Comparator.java
+++ b/src/library/scala/runtime/Comparator.java
@@ -13,8 +13,8 @@ package scala.runtime;
/**
* @author Gilles Dubochet
- * @version 1.1
- */
+ * @author Martin Odersky
+ * @version 1.2 */
public class Comparator {
private static int CHAR = 0, BYTE = 1, SHORT = 2, INT = 3, LONG = 4, FLOAT = 5, DOUBLE = 6, OTHER = 7;
@@ -41,6 +41,8 @@ public class Comparator {
public static boolean equals(Object a, Object b) {
if (a == null)
return b == null;
+ else if (b == null)
+ return false;
else if (a.equals(b))
return true;
else {
@@ -63,6 +65,8 @@ public class Comparator {
double aa = (acode == CHAR) ? ((Character) a).charValue() : ((Number) a).doubleValue();
double bb = (bcode == CHAR) ? ((Character) b).charValue() : ((Number) b).doubleValue();
return aa == bb;
+ } else if (acode != OTHER) {
+ return b.equals(a);
} else {
return a == b;
}