 0: Enter function "test_1" -> 1
 1:   Enter block -> 2  |  <- 0
 2:     Try expression enter -> 3  |  <- 1
 3:       Try main block enter -> 4, 9, 15, 23  |  <- 2
 4:         Enter block -> 5  |  <- 3
 5:           Const: Int(1) -> 6  |  <- 4
 6:           Variable declaration: lval x: R|kotlin/Int| -> 7  |  <- 5
 7:         Exit block -> 8  |  <- 6
 8:       Try main block exit -> 21  |  <- 7
 9:       Catch enter -> 10, 23  |  <- 3
10:         Enter block -> 11  |  <- 9
11:           Const: Int(3) -> 12  |  <- 10
12:           Variable declaration: lval z: R|kotlin/Int| -> 13  |  <- 11
13:         Exit block -> 14  |  <- 12
14:       Catch exit -> 21  |  <- 13
15:       Catch enter -> 16, 23  |  <- 3
16:         Enter block -> 17  |  <- 15
17:           Const: Int(2) -> 18  |  <- 16
18:           Variable declaration: lval y: R|kotlin/Int| -> 19  |  <- 17
19:         Exit block -> 20  |  <- 18
20:       Catch exit -> 21  |  <- 19
21:     Try expression exit -> 22  |  <- 8, 14, 20
22:   Exit block -> 23  |  <- 21
23: Exit function "test_1" ->   |  <- 3, 9, 15, 22

 0: Enter function "test_2" -> 1
 1:   Enter block -> 2  |  <- 0
 2:     Try expression enter -> 3  |  <- 1
 3:       Try main block enter -> 4, 8, 16  |  <- 2
 4:         Enter block -> 5  |  <- 3
 5:           Const: Int(1) -> 6  |  <- 4
 6:         Exit block -> 7  |  <- 5
 7:       Try main block exit -> 13  |  <- 6
 8:       Catch enter -> 9, 16  |  <- 3
 9:         Enter block -> 10  |  <- 8
10:           Const: Int(2) -> 11  |  <- 9
11:         Exit block -> 12  |  <- 10
12:       Catch exit -> 13  |  <- 11
13:     Try expression exit -> 14  |  <- 7, 12
14:     Variable declaration: lval x: R|kotlin/Int| -> 15  |  <- 13
15:   Exit block -> 16  |  <- 14
16: Exit function "test_2" ->   |  <- 3, 8, 15

 0: Enter function "test_3" -> 1
 1:   Enter block -> 2  |  <- 0
 2:     Enter while loop -> 3  |  <- 1
 3:       Enter loop condition -> 4  |  <- 2, 54, 62
 4:         Const: Boolean(true) -> 5  |  <- 3
 5:       Exit loop condition -> 6, 63  |  <- 4
 6:       Enter loop block -> 7  |  <- 5
 7:         Enter block -> 8  |  <- 6
 8:           Try expression enter -> 9  |  <- 7
 9:             Try main block enter -> 10, 46, 52, 67  |  <- 8
10:               Enter block -> 11  |  <- 9
11:                 Enter when -> 12  |  <- 10
12:                   Enter when branch condition  -> 13  |  <- 11
13:                     Access variable R|<local>/b| -> 14  |  <- 12
14:                   Exit when branch condition -> 15, 20  |  <- 13
15:                     Enter block -> 16  |  <- 14
16:                       Jump: ^test_3 Unit -> 17[DEAD], 67  |  <- 15
17:                       Stub[DEAD] -> 18  |  <- 16
18:                     Exit block[DEAD] -> 19  |  <- 17
19:                   Exit when branch result[DEAD] -> 25  |  <- 18
20:                   Enter when branch condition "else" -> 21  |  <- 14
21:                   Exit when branch condition -> 22  |  <- 20
22:                     Enter block -> 23  |  <- 21
23:                     Exit block -> 24  |  <- 22
24:                   Exit when branch result -> 25  |  <- 23
25:                 Exit when -> 26  |  <- 19[DEAD], 24
26:                 Const: Int(1) -> 27  |  <- 25
27:                 Variable declaration: lval x: R|kotlin/Int| -> 28  |  <- 26
28:                 Enter when -> 29  |  <- 27
29:                   Enter when branch condition  -> 30  |  <- 28
30:                     Access variable R|<local>/b| -> 31  |  <- 29
31:                     Function call: R|<local>/b|.R|kotlin/Boolean.not|() -> 32  |  <- 30
32:                   Exit when branch condition -> 33, 38  |  <- 31
33:                     Enter block -> 34  |  <- 32
34:                       Jump: break@@@[Boolean(true)]  -> 35[DEAD], 63  |  <- 33
35:                       Stub[DEAD] -> 36  |  <- 34
36:                     Exit block[DEAD] -> 37  |  <- 35
37:                   Exit when branch result[DEAD] -> 43  |  <- 36
38:                   Enter when branch condition "else" -> 39  |  <- 32
39:                   Exit when branch condition -> 40  |  <- 38
40:                     Enter block -> 41  |  <- 39
41:                     Exit block -> 42  |  <- 40
42:                   Exit when branch result -> 43  |  <- 41
43:                 Exit when -> 44  |  <- 37[DEAD], 42
44:               Exit block -> 45  |  <- 43
45:             Try main block exit -> 58  |  <- 44
46:             Catch enter -> 47, 67  |  <- 9
47:               Enter block -> 48  |  <- 46
48:                 Jump: break@@@[Boolean(true)]  -> 49[DEAD], 63  |  <- 47
49:                 Stub[DEAD] -> 50  |  <- 48
50:               Exit block[DEAD] -> 51  |  <- 49
51:             Catch exit[DEAD] -> 58  |  <- 50
52:             Catch enter -> 53, 67  |  <- 9
53:               Enter block -> 54  |  <- 52
54:                 Jump: continue@@@[Boolean(true)]  -> 3, 55[DEAD]  |  <- 53
55:                 Stub[DEAD] -> 56  |  <- 54
56:               Exit block[DEAD] -> 57  |  <- 55
57:             Catch exit[DEAD] -> 58  |  <- 56
58:           Try expression exit -> 59  |  <- 45, 51[DEAD], 57[DEAD]
59:           Const: Int(2) -> 60  |  <- 58
60:           Variable declaration: lval y: R|kotlin/Int| -> 61  |  <- 59
61:         Exit block -> 62  |  <- 60
62:       Exit loop block -> 3  |  <- 61
63:     Exit whileloop -> 64  |  <- 5, 34, 48
64:     Const: Int(3) -> 65  |  <- 63
65:     Variable declaration: lval z: R|kotlin/Int| -> 66  |  <- 64
66:   Exit block -> 67  |  <- 65
67: Exit function "test_3" ->   |  <- 9, 16, 46, 52, 66

