diff options
author | David MacIver <david.maciver@gmail.com> | 2009-03-26 20:08:56 +0000 |
---|---|---|
committer | David MacIver <david.maciver@gmail.com> | 2009-03-26 20:08:56 +0000 |
commit | 06e3400b2cd813ff3dd5778e18ce1d17bc0a50d2 (patch) | |
tree | a3037912af86d4f2f80cddd1ffe6d5547ec38b34 /src/library | |
parent | bf96e45cd12d71140d27b8c4901c279a2ce4e5fc (diff) | |
download | scala-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/library')
-rw-r--r-- | src/library/scala/collection/immutable/IntMap.scala | 7 | ||||
-rw-r--r-- | src/library/scala/collection/immutable/LongMap.scala | 7 |
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]]; |