summaryrefslogtreecommitdiff
path: root/test/files/run/t576.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/run/t576.scala')
-rw-r--r--test/files/run/t576.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/files/run/t576.scala b/test/files/run/t576.scala
new file mode 100644
index 0000000000..2fc929f325
--- /dev/null
+++ b/test/files/run/t576.scala
@@ -0,0 +1,45 @@
+class A {
+ override def equals(other: Any) = other match {
+ case _: this.type => true
+ case _ => false
+ }
+}
+
+object Dingus {
+ def IamDingus = 5
+}
+
+object Test {
+ val x1 = new A
+ val x2 = new A
+
+ val x3 = new { self =>
+ override def equals(other : Any) = other match {
+ case that: self.type => true
+ case _ => false
+ }
+ }
+ val x4 = new { self =>
+ def f(x: Any) = x match {
+ case _: x1.type => 1
+ case _: x2.type => 2
+ case _: x3.type => 3
+ case _: self.type => 4
+ case x: Dingus.type => x.IamDingus
+ }
+ }
+
+ def main(args: Array[String]): Unit = {
+
+ assert(x1 == x1)
+ assert(x1 != x2)
+ assert(x1 != ())
+ assert(x2 != x1)
+
+ assert(x3 == x3)
+ assert(x3 != x2)
+ assert(x2 != x3)
+
+ List(x1, x2, x3, x4, Dingus) map x4.f foreach println
+ }
+} \ No newline at end of file