diff options
author | Martin Odersky <odersky@gmail.com> | 2009-11-12 17:22:51 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2009-11-12 17:22:51 +0000 |
commit | 6599b4dc6081fb4961d07bdb83a1bcd764c59058 (patch) | |
tree | 6e1bf447a0a644491a6420b7dae9d2c2e70084c4 /src/library/scala/runtime/BoxesRunTime.java | |
parent | e7bc7737c72dff381cfc93d2387a66565de1968b (diff) | |
download | scala-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.java | 6 |
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; } |