summaryrefslogtreecommitdiff
path: root/test/files
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-09-28 22:03:39 -0700
committerPaul Phillips <paulp@improving.org>2012-09-28 22:13:29 -0700
commitd892e8b3b215d39f00fbbcdb202baf5329c39815 (patch)
tree7909a0d57274fa7d003c48882892408dd6e00ed0 /test/files
parentdea6c342da2ed9c297e40a00625b819e9452c1b5 (diff)
downloadscala-d892e8b3b215d39f00fbbcdb202baf5329c39815.tar.gz
scala-d892e8b3b215d39f00fbbcdb202baf5329c39815.tar.bz2
scala-d892e8b3b215d39f00fbbcdb202baf5329c39815.zip
Fix for SI-5130, precision disappearing from refinement.
Remove some code, win a prize.
Diffstat (limited to 'test/files')
-rw-r--r--test/files/pos/t5130.scala46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/files/pos/t5130.scala b/test/files/pos/t5130.scala
new file mode 100644
index 0000000000..676d3c7050
--- /dev/null
+++ b/test/files/pos/t5130.scala
@@ -0,0 +1,46 @@
+import scala.language.reflectiveCalls
+
+class A {
+ this_a =>
+
+ def b = new B
+ class B { def a: this_a.type = this_a }
+}
+trait A2 { def c = () }
+
+object Test {
+ val v1 = new A { def c = () }
+ val v2 = new A with A2 { }
+ val v3: A { def c: Unit } = null
+ def d1 = new A { def c = () }
+ def d2 = new A with A2 { }
+ def d3: A { def c: Unit } = null
+ var x1 = new A { def c = () }
+ var x2 = new A with A2 { }
+ var x3: A { def c: Unit } = null
+
+ def main(args: Array[String]): Unit = {
+ val mv1 = new A { def c = () }
+ val mv2 = new A with A2 { }
+ val mv3: A { def c: Unit } = null
+ def md1 = new A { def c = () }
+ def md2 = new A with A2 { }
+ def md3: A { def c: Unit } = null
+
+ v1.b.a.c
+ v2.b.a.c
+ v3.b.a.c
+ d1.b.a.c
+ d2.b.a.c
+ d3.b.a.c
+ x1.b.a.c
+ x2.b.a.c
+ x3.b.a.c
+ mv1.b.a.c
+ mv2.b.a.c
+ mv3.b.a.c
+ md1.b.a.c
+ md2.b.a.c
+ md3.b.a.c
+ }
+}