summaryrefslogtreecommitdiff
path: root/src/library/scala/runtime/BoxesRunTime.java
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2009-11-12 17:22:51 +0000
committerMartin Odersky <odersky@gmail.com>2009-11-12 17:22:51 +0000
commit6599b4dc6081fb4961d07bdb83a1bcd764c59058 (patch)
tree6e1bf447a0a644491a6420b7dae9d2c2e70084c4 /src/library/scala/runtime/BoxesRunTime.java
parente7bc7737c72dff381cfc93d2387a66565de1968b (diff)
downloadscala-6599b4dc6081fb4961d07bdb83a1bcd764c59058.tar.gz
scala-6599b4dc6081fb4961d07bdb83a1bcd764c59058.tar.bz2
scala-6599b4dc6081fb4961d07bdb83a1bcd764c59058.zip
added hooks so that BigInt, BigDecimal can do t...
added hooks so that BigInt, BigDecimal can do the right thign for equality.
Diffstat (limited to 'src/library/scala/runtime/BoxesRunTime.java')
-rw-r--r--src/library/scala/runtime/BoxesRunTime.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/library/scala/runtime/BoxesRunTime.java b/src/library/scala/runtime/BoxesRunTime.java
index b4252ed647..39ea9abcdd 100644
--- a/src/library/scala/runtime/BoxesRunTime.java
+++ b/src/library/scala/runtime/BoxesRunTime.java
@@ -12,6 +12,7 @@
package scala.runtime;
import java.io.*;
+import scala.math.ScalaNumber;
/** An object (static class) that defines methods used for creating,
* reverting, and calculating with, boxed values. There are four classes
@@ -145,6 +146,9 @@ public class BoxesRunTime
Number xn = (Number)x;
if (y instanceof Number) {
Number yn = (Number)y;
+ if ((y instanceof ScalaNumber) && !(x instanceof ScalaNumber)) {
+ return y.equals(x);
+ }
if ((xn instanceof Double) || (yn instanceof Double))
return xn.doubleValue() == yn.doubleValue();
if ((xn instanceof Float) || (yn instanceof Float))
@@ -175,6 +179,8 @@ public class BoxesRunTime
return x.floatValue() == ch;
if (x instanceof Long)
return x.longValue() == ch;
+ if (x instanceof ScalaNumber)
+ return x.equals(y);
return x.intValue() == ch;
}