summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-09-28 15:42:35 +0000
committerPaul Phillips <paulp@improving.org>2010-09-28 15:42:35 +0000
commitfda537c771e16655e268e5c006f2dead25aeda30 (patch)
tree11d2c13fdf9982202558e8ce071b052433e80dd5 /test
parent19b42dea4538d20b696de4bdb0b01e7fdef2dd36 (diff)
downloadscala-fda537c771e16655e268e5c006f2dead25aeda30.tar.gz
scala-fda537c771e16655e268e5c006f2dead25aeda30.tar.bz2
scala-fda537c771e16655e268e5c006f2dead25aeda30.zip
Refined crash avoidance related to self type te...
Refined crash avoidance related to self type tests in anonymous classes as introduced for #576. Now it really only excludes anonymous classes. Suddenly, this works: override def equals(other: Any) = other match { case _: this.type => true case _ => false } Who will be the first to roll out some reference equality in the this.type style? No review.
Diffstat (limited to 'test')
-rw-r--r--test/files/run/bug576-regress.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/files/run/bug576-regress.scala b/test/files/run/bug576-regress.scala
new file mode 100644
index 0000000000..b608dd5a42
--- /dev/null
+++ b/test/files/run/bug576-regress.scala
@@ -0,0 +1,17 @@
+class A {
+ override def equals(other: Any) = other match {
+ case _: this.type => true
+ case _ => false
+ }
+}
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ val x1 = new A
+ val x2 = new A
+ assert(x1 == x1)
+ assert(x1 != x2)
+ assert(x1 != ())
+ assert(x2 != x1)
+ }
+} \ No newline at end of file