Fix codegen of do-while condition

The condition of a do-while loop can use variables declared in the loop
(variables can only be declared inside a block). Previously this behaviour
caused crash because after the block was generated, all variables declared
inside that block were gone from myFrameMap

 #KT-3280 Fixed
This commit is contained in:
Alexander Udalov
2013-02-04 14:44:25 +04:00
parent 2a4f06e32d
commit 4ca522bf0e
5 changed files with 91 additions and 10 deletions
@@ -0,0 +1,24 @@
fun foo() {
var x = 0
do {
x++
var y = x + 5
} while (y < 10)
if (x != 5) throw AssertionError("$x")
}
fun bar() {
var b = false
do {
var x = "X"
var y = "Y"
b = true
} while (x + y != "XY")
if (!b) throw AssertionError()
}
fun box(): String {
foo()
bar()
return "OK"
}