diff options
Diffstat (limited to 'tests/untried/neg/t5120.scala')
-rw-r--r-- | tests/untried/neg/t5120.scala | 29 |
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) + } +} |