summaryrefslogtreecommitdiff
path: root/test/files/neg/t963b.scala
diff options
context:
space:
mode:
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)
+}