summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid MacIver <david.maciver@gmail.com>2009-03-26 20:08:56 +0000
committerDavid MacIver <david.maciver@gmail.com>2009-03-26 20:08:56 +0000
commit06e3400b2cd813ff3dd5778e18ce1d17bc0a50d2 (patch)
treea3037912af86d4f2f80cddd1ffe6d5547ec38b34 /src
parentbf96e45cd12d71140d27b8c4901c279a2ce4e5fc (diff)
downloadscala-06e3400b2cd813ff3dd5778e18ce1d17bc0a50d2.tar.gz
scala-06e3400b2cd813ff3dd5778e18ce1d17bc0a50d2.tar.bz2
scala-06e3400b2cd813ff3dd5778e18ce1d17bc0a50d2.zip
Correcting equality behaviour on IntMap.empty a...
Correcting equality behaviour on IntMap.empty and LongMap.empty
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/collection/immutable/IntMap.scala7
-rw-r--r--src/library/scala/collection/immutable/LongMap.scala7
2 files changed, 12 insertions, 2 deletions
diff --git a/src/library/scala/collection/immutable/IntMap.scala b/src/library/scala/collection/immutable/IntMap.scala
index 2e05c6873d..c05f7ec1a8 100644
--- a/src/library/scala/collection/immutable/IntMap.scala
+++ b/src/library/scala/collection/immutable/IntMap.scala
@@ -46,8 +46,13 @@ object IntMap{
private[immutable] case object Nil extends IntMap[Nothing]{
- override def equals(that : Any) = this eq that.asInstanceOf[AnyRef]
+ override def equals(that : Any) = that match {
+ case (that : AnyRef) if (this eq that) => true;
+ case (that : IntMap[_]) => false; // The only empty IntMaps are eq Nil
+ case that => super.equals(that);
+ }
};
+
private[immutable] case class Tip[+T](key : Int, value : T) extends IntMap[T]{
def withValue[S](s : S) =
if (s.asInstanceOf[AnyRef] eq value.asInstanceOf[AnyRef]) this.asInstanceOf[IntMap.Tip[S]];
diff --git a/src/library/scala/collection/immutable/LongMap.scala b/src/library/scala/collection/immutable/LongMap.scala
index e0afdf0ad6..298d7c4e82 100644
--- a/src/library/scala/collection/immutable/LongMap.scala
+++ b/src/library/scala/collection/immutable/LongMap.scala
@@ -47,8 +47,13 @@ object LongMap{
private[immutable] case object Nil extends LongMap[Nothing]{
- override def equals(that : Any) = this eq that.asInstanceOf[AnyRef]
+ override def equals(that : Any) = that match {
+ case (that : AnyRef) if (this eq that) => true;
+ case (that : LongMap[_]) => false; // The only empty LongMaps are eq Nil
+ case that => super.equals(that);
+ }
};
+
private[immutable] case class Tip[+T](key : Long, value : T) extends LongMap[T]{
def withValue[S](s : S) =
if (s.asInstanceOf[AnyRef] eq value.asInstanceOf[AnyRef]) this.asInstanceOf[LongMap.Tip[S]];