 0: Enter function "test_1" -> 1
 1:   Enter block -> 2  |  <- 0
 2:     Enter when -> 3  |  <- 1
 3:       Enter when branch condition  -> 4  |  <- 2
 4:         Access variable R|<local>/x| -> 5  |  <- 3
 5:         Const: Null(null) -> 6  |  <- 4
 6:         Operator == -> 7  |  <- 5
 7:       Exit when branch condition -> 8, 14  |  <- 6
 8:         Enter block -> 9  |  <- 7
 9:           Function call: R|kotlin/KotlinNullPointerException.KotlinNullPointerException|() -> 10  |  <- 8
10:           Throw: throw R|kotlin/KotlinNullPointerException.KotlinNullPointerException|() -> 11[DEAD], 25  |  <- 9
11:           Stub[DEAD] -> 12  |  <- 10
12:         Exit block[DEAD] -> 13  |  <- 11
13:       Exit when branch result[DEAD] -> 20  |  <- 12
14:       Enter when branch condition "else" -> 15  |  <- 7
15:       Exit when branch condition -> 16  |  <- 14
16:         Enter block -> 17  |  <- 15
17:           Access variable R|<local>/x| -> 18  |  <- 16
18:         Exit block -> 19  |  <- 17
19:       Exit when branch result -> 20  |  <- 18
20:     Exit when -> 21  |  <- 13[DEAD], 19
21:     Variable declaration: lval y: R|kotlin/Int| -> 22  |  <- 20
22:     Access variable R|<local>/y| -> 23  |  <- 21
23:     Function call: R|<local>/y|.R|kotlin/Int.inc|() -> 24  |  <- 22
24:   Exit block -> 25  |  <- 23
25: Exit function "test_1" ->   |  <- 10, 24

 0: Enter function "test_2" -> 1
 1:   Enter block -> 2  |  <- 0
 2:     Enter when -> 3  |  <- 1
 3:       Enter when branch condition  -> 4  |  <- 2
 4:         Access variable R|<local>/x| -> 5  |  <- 3
 5:         Const: Null(null) -> 6  |  <- 4
 6:         Operator == -> 7  |  <- 5
 7:       Exit when branch condition -> 8, 12  |  <- 6
 8:         Enter block -> 9  |  <- 7
 9:           Access variable R|<local>/x| -> 10  |  <- 8
10:         Exit block -> 11  |  <- 9
11:       Exit when branch result -> 18  |  <- 10
12:       Enter when branch condition "else" -> 13  |  <- 7
13:       Exit when branch condition -> 14  |  <- 12
14:         Enter block -> 15  |  <- 13
15:           Access variable R|<local>/x| -> 16  |  <- 14
16:         Exit block -> 17  |  <- 15
17:       Exit when branch result -> 18  |  <- 16
18:     Exit when -> 19  |  <- 11, 17
19:     Variable declaration: lval y: R|kotlin/Int?| -> 20  |  <- 18
20:     Access variable R|<local>/y| -> 21  |  <- 19
21:     Function call: R|<local>/y|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#() -> 22  |  <- 20
22:   Exit block -> 23  |  <- 21
23: Exit function "test_2" ->   |  <- 22

 0: Enter function "test_3" -> 1
 1:   Enter block -> 2  |  <- 0
 2:     Enter while loop -> 3  |  <- 1
 3:       Enter loop condition -> 4  |  <- 2, 13[DEAD]
 4:         Const: Boolean(true) -> 5  |  <- 3
 5:       Exit loop condition -> 6, 14  |  <- 4
 6:       Enter loop block -> 7  |  <- 5
 7:         Enter block -> 8  |  <- 6
 8:           Access variable R|<local>/x| -> 9  |  <- 7
 9:           Type operator: "x as Int" -> 10  |  <- 8
10:           Jump: break@@@[Boolean(true)]  -> 11[DEAD], 14  |  <- 9
11:           Stub[DEAD] -> 12  |  <- 10
12:         Exit block[DEAD] -> 13  |  <- 11
13:       Exit loop block[DEAD] -> 3  |  <- 12
14:     Exit whileloop -> 15  |  <- 5, 10
15:     Access variable R|<local>/x| -> 16  |  <- 14
16:     Function call: R|<local>/x|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#() -> 17  |  <- 15
17:   Exit block -> 18  |  <- 16
18: Exit function "test_3" ->   |  <- 17

 0: Enter function "test_4" -> 1
 1:   Enter block -> 2  |  <- 0
 2:     Enter do-while loop -> 3  |  <- 1
 3:       Enter loop block -> 4  |  <- 2, 13[DEAD]
 4:         Enter block -> 5  |  <- 3
 5:           Access variable R|<local>/x| -> 6  |  <- 4
 6:           Type operator: "x as int" -> 7  |  <- 5
 7:           Jump: break@@@[Boolean(true)]  -> 8[DEAD], 14[DEAD]  |  <- 6
 8:           Stub[DEAD] -> 9  |  <- 7
 9:         Exit block[DEAD] -> 10  |  <- 8
10:       Exit loop block[DEAD] -> 11  |  <- 9
11:       Enter loop condition[DEAD] -> 12  |  <- 10
12:         Const: Boolean(true)[DEAD] -> 13  |  <- 11
13:       Exit loop condition[DEAD] -> 3, 14  |  <- 12
14:     Exit do-whileloop[DEAD] -> 15  |  <- 7, 13
15:     Access variable R|<local>/x|[DEAD] -> 16  |  <- 14
16:     Function call: R|<local>/x|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()[DEAD] -> 17  |  <- 15
17:   Exit block[DEAD] -> 18  |  <- 16
18: Exit function "test_4"[DEAD] ->   |  <- 17

