summaryrefslogtreecommitdiff
path: root/test/files/run/bug576.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-10-27 00:59:25 +0000
committerPaul Phillips <paulp@improving.org>2010-10-27 00:59:25 +0000
commita15e48df88fde5172526f68939530862f72f19ca (patch)
tree726b918d7de48c3d0da686c7f08ea6fd7ef164fb /test/files/run/bug576.scala
parent46d1cfc7f0ee0df50ff92f0acbaaa700269901a6 (diff)
downloadscala-a15e48df88fde5172526f68939530862f72f19ca.tar.gz
scala-a15e48df88fde5172526f68939530862f72f19ca.tar.bz2
scala-a15e48df88fde5172526f68939530862f72f19ca.zip
Merge branch 'oct26' of /scala/trunk
Diffstat (limited to 'test/files/run/bug576.scala')
-rw-r--r--test/files/run/bug576.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/files/run/bug576.scala b/test/files/run/bug576.scala
new file mode 100644
index 0000000000..2fc929f325
--- /dev/null
+++ b/test/files/run/bug576.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