diff options
author | Martin Odersky <odersky@gmail.com> | 2012-02-03 07:44:41 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2012-02-03 07:44:41 +0100 |
commit | b4cfd1161e9f549a909d9f563f557c17dbddad00 (patch) | |
tree | 63d64dfdd30322c211e1805df670aec3aeb3659e /src/library/scala/Proxy.scala | |
parent | e9a70f564a29ec0e2262cc9e6608c990b6b05274 (diff) | |
download | scala-b4cfd1161e9f549a909d9f563f557c17dbddad00.tar.gz scala-b4cfd1161e9f549a909d9f563f557c17dbddad00.tar.bz2 scala-b4cfd1161e9f549a909d9f563f557c17dbddad00.zip |
intermediate work towards a new starr for value classes.
Diffstat (limited to 'src/library/scala/Proxy.scala')
-rw-r--r-- | src/library/scala/Proxy.scala | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/library/scala/Proxy.scala b/src/library/scala/Proxy.scala index 383ff5b3bb..16c3c3fa56 100644 --- a/src/library/scala/Proxy.scala +++ b/src/library/scala/Proxy.scala @@ -22,13 +22,15 @@ package scala * @author Matthias Zenger * @version 1.0, 26/04/2004 */ -trait Proxy { +trait Proxy extends Any { def self: Any override def hashCode: Int = self.hashCode override def equals(that: Any): Boolean = that match { - case null => false - case x: AnyRef => (x eq this) || (x eq self.asInstanceOf[AnyRef]) || (x equals self) + case null => false + case _ => + val x = that.asInstanceOf[AnyRef] + (x eq this.asInstanceOf[AnyRef]) || (x eq self.asInstanceOf[AnyRef]) || (x equals self) } override def toString = "" + self } @@ -36,7 +38,7 @@ trait Proxy { object Proxy { /** A proxy which exposes the type it is proxying for via a type parameter. */ - trait Typed[T] extends Proxy { + trait Typed[T] extends /*Any with */Proxy { def self: T } } |