diff options
author | Martin Odersky <odersky@gmail.com> | 2013-12-11 11:35:56 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-12-11 11:36:03 +0100 |
commit | 710e0f9615772c6b64f3e511e6def6d4f1c68b3f (patch) | |
tree | 3f04dfb0aa42868967868ecef1146265f1dfe0bb /tests | |
parent | c8f71771b648cf4482a0ee79a31dff75fd9bcf48 (diff) | |
download | dotty-710e0f9615772c6b64f3e511e6def6d4f1c68b3f.tar.gz dotty-710e0f9615772c6b64f3e511e6def6d4f1c68b3f.tar.bz2 dotty-710e0f9615772c6b64f3e511e6def6d4f1c68b3f.zip |
Fixes to typer.
1. Got rid if InSuperInit mode bit.
2. Fixes to typing assignments
3. Import qualifiers need to be stable
Diffstat (limited to 'tests')
-rw-r--r-- | tests/neg/assignments.scala | 23 | ||||
-rw-r--r-- | tests/pos/assignments.scala | 25 |
2 files changed, 48 insertions, 0 deletions
diff --git a/tests/neg/assignments.scala b/tests/neg/assignments.scala new file mode 100644 index 000000000..2f7db275a --- /dev/null +++ b/tests/neg/assignments.scala @@ -0,0 +1,23 @@ +object assignments { + + var a = Array(1, 2, 3) + var i = 0 + a(i) = a(i) * 2 + a(i+1) += 1 + + class C { + var myX = 0 + def x = myX + def x_=(x: Int) = myX = x + + x = x + 1 + x *= 2 + + x_= = 2 // should give missing arguments + reassignment to val + } + + var c = new C + import c._ // should give: prefix is not stable + x = x + 1 + x *= 2 +} diff --git a/tests/pos/assignments.scala b/tests/pos/assignments.scala new file mode 100644 index 000000000..94223b62c --- /dev/null +++ b/tests/pos/assignments.scala @@ -0,0 +1,25 @@ +object assignments { + + var a = Array(1, 2, 3) + var i = 0 + a(i) = a(i) * 2 + a(i+1) += 1 + + class C { + var myX = 0 + def x = myX + def x_=(x: Int) = myX = x + + x = x + 1 + x *= 2 + } + + var c = new C + c.x =c.x + 1 + c.x *= 2 + + val cc = c + import cc._ + x = x + 1 + x *= 2 +} |