diff options
author | Paul Phillips <paulp@improving.org> | 2010-01-29 15:43:41 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-01-29 15:43:41 +0000 |
commit | a3da2dca9fafd6a5ecfd7ba77c73914ef6071d91 (patch) | |
tree | 20457f902480861ca5e2c9849ac8d04ee42f11f6 | |
parent | 36707c33be962498405d52c96d7945c51e74c9df (diff) | |
download | scala-a3da2dca9fafd6a5ecfd7ba77c73914ef6071d91.tar.gz scala-a3da2dca9fafd6a5ecfd7ba77c73914ef6071d91.tar.bz2 scala-a3da2dca9fafd6a5ecfd7ba77c73914ef6071d91.zip |
Added hashCode implementations to Manifest type...
Added hashCode implementations to Manifest types where necessary. Closes
#2838. No review.
-rw-r--r-- | src/library/scala/reflect/ClassManifest.scala | 1 | ||||
-rw-r--r-- | src/library/scala/reflect/Manifest.scala | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/library/scala/reflect/ClassManifest.scala b/src/library/scala/reflect/ClassManifest.scala index 58f3c89499..a026d162d1 100644 --- a/src/library/scala/reflect/ClassManifest.scala +++ b/src/library/scala/reflect/ClassManifest.scala @@ -82,6 +82,7 @@ trait ClassManifest[T] extends OptManifest[T] { case m: ClassManifest[_] => this.erasure == m.erasure case _ => false } + override def hashCode = this.erasure.hashCode protected def arrayClass[T](tp: Predef.Class[_]): Predef.Class[Array[T]] = java.lang.reflect.Array.newInstance(tp, 0).getClass.asInstanceOf[Predef.Class[Array[T]]] diff --git a/src/library/scala/reflect/Manifest.scala b/src/library/scala/reflect/Manifest.scala index 69842e1193..6ca64df67a 100644 --- a/src/library/scala/reflect/Manifest.scala +++ b/src/library/scala/reflect/Manifest.scala @@ -39,6 +39,7 @@ trait AnyValManifest[T] extends Manifest[T] { import Manifest.{ Any, AnyVal } override def <:<(that: ClassManifest[_]): Boolean = (that eq this) || (that eq Any) || (that eq AnyVal) override def equals(that: Any): Boolean = this eq that.asInstanceOf[AnyRef] + override def hashCode = System.identityHashCode(this) } /** <ps> @@ -137,6 +138,7 @@ object Manifest { override def toString = "Any" override def <:<(that: ClassManifest[_]): Boolean = (that eq this) override def equals(that: Any): Boolean = this eq that.asInstanceOf[AnyRef] + override def hashCode = System.identityHashCode(this) private def readResolve(): Any = Manifest.Any } @@ -144,6 +146,7 @@ object Manifest { override def toString = "Object" override def <:<(that: ClassManifest[_]): Boolean = (that eq this) || (that eq Any) override def equals(that: Any): Boolean = this eq that.asInstanceOf[AnyRef] + override def hashCode = System.identityHashCode(this) private def readResolve(): Any = Manifest.Object } @@ -151,6 +154,7 @@ object Manifest { override def toString = "AnyVal" override def <:<(that: ClassManifest[_]): Boolean = (that eq this) || (that eq Any) override def equals(that: Any): Boolean = this eq that.asInstanceOf[AnyRef] + override def hashCode = System.identityHashCode(this) private def readResolve(): Any = Manifest.AnyVal } @@ -159,6 +163,7 @@ object Manifest { override def <:<(that: ClassManifest[_]): Boolean = (that ne null) && (that ne Nothing) && !(that <:< AnyVal) override def equals(that: Any): Boolean = this eq that.asInstanceOf[AnyRef] + override def hashCode = System.identityHashCode(this) private def readResolve(): Any = Manifest.Null } @@ -166,6 +171,7 @@ object Manifest { override def toString = "Nothing" override def <:<(that: ClassManifest[_]): Boolean = (that ne null) override def equals(that: Any): Boolean = this eq that.asInstanceOf[AnyRef] + override def hashCode = System.identityHashCode(this) private def readResolve(): Any = Manifest.Nothing } |