summaryrefslogtreecommitdiff
path: root/test/files/neg/t963b.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-05-11 07:52:27 -0700
committerPaul Phillips <paulp@improving.org>2012-05-23 08:43:10 -0700
commit402b5e4a1341ef4549b7e0979f9c5afc06f47315 (patch)
tree0ec0f5dbd51874d9ed9d4676451d553474eb8fd1 /test/files/neg/t963b.scala
parent0d7952f90fc11f4dc055a2658b16b7183f1d6683 (diff)
downloadscala-402b5e4a1341ef4549b7e0979f9c5afc06f47315.tar.gz
scala-402b5e4a1341ef4549b7e0979f9c5afc06f47315.tar.bz2
scala-402b5e4a1341ef4549b7e0979f9c5afc06f47315.zip
Pending and passing tests.
Move now-passing SI-963 test into neg. Test for partial specialization. Pending test for SI-5008. Pending test for SI-4649. Abstract array type test.
Diffstat (limited to 'test/files/neg/t963b.scala')
-rw-r--r--test/files/neg/t963b.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/files/neg/t963b.scala b/test/files/neg/t963b.scala
new file mode 100644
index 0000000000..b34aae8095
--- /dev/null
+++ b/test/files/neg/t963b.scala
@@ -0,0 +1,26 @@
+// Soundness bug, at #963 and dup at #2079.
+trait A {
+ type T
+ var v : T
+}
+
+object B {
+ def f(x : { val y : A }) { x.y.v = x.y.v }
+
+ var a : A = _
+ var b : Boolean = false
+ def y : A = {
+ if(b) {
+ a = new A { type T = Int; var v = 1 }
+ a
+ } else {
+ a = new A { type T = String; var v = "" }
+ b = true
+ a
+ }
+ }
+}
+
+object Test extends App {
+ B.f(B)
+}