| |
| // 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) |