aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/neg/t5120.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/neg/t5120.scala')
-rw-r--r--tests/untried/neg/t5120.scala29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/untried/neg/t5120.scala b/tests/untried/neg/t5120.scala
new file mode 100644
index 000000000..478436d85
--- /dev/null
+++ b/tests/untried/neg/t5120.scala
@@ -0,0 +1,29 @@
+class Cell[T](x0: T) {
+ type U = T
+ var x1: U = x0
+}
+
+object Test {
+ val str: Cell[String] = new Cell("a")
+ val other: Cell[Int] = new Cell(0)
+
+ def main(args: Array[String]): Unit = {
+ List(str, other) foreach (_.x1 = new AnyRef)
+ str.x1.length
+ }
+}
+// another way demonstrating the same underlying problem, as reported by roman kalukiewicz
+
+class Holder[_T](_f1 : _T, _f2 : _T) {
+ type T = _T
+ var f1 : T = _f1
+ var f2 : T = _f2
+}
+object Test2 {
+ val str = new Holder("t1", "t2")
+ val num = new Holder(1, 2)
+ List(str, num).foreach(h => h.f1 = new Thread())
+ def main(args: Array[String]): Unit = {
+ println(str.f1)
+ }
+}