blob: ab92fd8c9141530b2ac98cf4e8bfcd25a6360cd6 [file]
// FILE: test.kt
fun shouldContinue(i: Int) = i < 1
fun box() {
var x = 0
do {
var z = 2
if (shouldContinue(x++)) {
continue
}
// Introduce a variable `y` which is not defined on all control-flow
// paths to the while condition. Therefore, it should not be in the
// local variable table at the condition.
var y = 12
} while (x < z)
}
// EXPECTATIONS JVM_IR
// test.kt:6 box:
// test.kt:8 box: x:int=0:int
// test.kt:9 box: x:int=0:int, z:int=2:int
// test.kt:3 shouldContinue: i:int=0:int
// test.kt:9 box: x:int=1:int, z:int=2:int
// test.kt:10 box: x:int=1:int, z:int=2:int
// test.kt:16 box: x:int=1:int, z:int=2:int
// test.kt:8 box: x:int=1:int
// test.kt:9 box: x:int=1:int, z:int=2:int
// test.kt:3 shouldContinue: i:int=1:int
// test.kt:9 box: x:int=2:int, z:int=2:int
// test.kt:15 box: x:int=2:int, z:int=2:int
// test.kt:16 box: x:int=2:int, z:int=2:int
// test.kt:17 box: x:int=2:int
// EXPECTATIONS JS_IR
// test.kt:6 box:
// test.kt:8 box: x=0:number
// test.kt:9 box: x=0:number, z=2:number
// test.kt:9 box: x=0:number, z=2:number
// test.kt:9 box: x=1:number, z=2:number
// test.kt:3 shouldContinue: i=0:number
// test.kt:10 box: x=1:number, z=2:number
// test.kt:16 box: x=1:number, z=2:number
// test.kt:8 box: x=1:number, z=2:number
// test.kt:9 box: x=1:number, z=2:number
// test.kt:9 box: x=1:number, z=2:number
// test.kt:9 box: x=2:number, z=2:number
// test.kt:3 shouldContinue: i=1:number
// test.kt:15 box: x=2:number, z=2:number
// test.kt:16 box: x=2:number, z=2:number, y=12:number
// test.kt:17 box: x=2:number, z=2:number, y=12:number
// EXPECTATIONS WASM
// test.kt:6 $box: $x:i32=0:i32, $z:i32=0:i32, $y:i32=0:i32 (10, 10)
// test.kt:8 $box: $x:i32=0:i32, $z:i32=0:i32, $y:i32=0:i32 (14, 14)
// test.kt:9 $box: $x:i32=1:i32, $z:i32=2:i32, $y:i32=0:i32 (25, 25, 25, 26, 26, 26, 26, 26, 26, 25, 25, 10)
// test.kt:3 $shouldContinue: $i:i32=0:i32 (29, 33, 29, 34)
// test.kt:9 $box: $x:i32=1:i32, $z:i32=2:i32, $y:i32=0:i32 (10)
// test.kt:10 $box: $x:i32=1:i32, $z:i32=2:i32, $y:i32=0:i32 (10)
// test.kt:16 $box: $x:i32=1:i32, $z:i32=2:i32, $y:i32=0:i32 (11, 15, 11, 11)
// test.kt:8 $box: $x:i32=1:i32, $z:i32=2:i32, $y:i32=0:i32 (14, 14)
// test.kt:9 $box: $x:i32=2:i32, $z:i32=2:i32, $y:i32=0:i32 (25, 25, 25, 26, 26, 26, 26, 26, 26, 25, 25, 10)
// test.kt:3 $shouldContinue: $i:i32=1:i32 (29, 33, 29, 34)
// test.kt:9 $box: $x:i32=2:i32, $z:i32=2:i32, $y:i32=0:i32 (10)
// test.kt:15 $box: $x:i32=2:i32, $z:i32=2:i32, $y:i32=12:i32 (14, 14, 14)
// test.kt:16 $box: $x:i32=2:i32, $z:i32=2:i32, $y:i32=12:i32 (11, 15, 11, 11, 11, 11)
// test.kt:17 $box: $x:i32=2:i32, $z:i32=2:i32, $y:i32=12:i32 (1, 1)