summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-01-29 15:43:41 +0000
committerPaul Phillips <paulp@improving.org>2010-01-29 15:43:41 +0000
commita3da2dca9fafd6a5ecfd7ba77c73914ef6071d91 (patch)
tree20457f902480861ca5e2c9849ac8d04ee42f11f6 /src
parent36707c33be962498405d52c96d7945c51e74c9df (diff)
downloadscala-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.
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/reflect/ClassManifest.scala1
-rw-r--r--src/library/scala/reflect/Manifest.scala6
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
}