| // WITH_STDLIB | |
| // FILE: test.kt | |
| inline fun h(block: () -> Unit) { | |
| try { | |
| val hLocal = "hLocal" | |
| block() | |
| } finally { | |
| val h = "h" | |
| } | |
| } | |
| inline fun g(block: () -> Unit) { | |
| try { | |
| val gLocal = "gLocal" | |
| h(block) | |
| } finally { | |
| val g = "g" | |
| } | |
| } | |
| var x: String? = null | |
| fun compute(): String { | |
| try { | |
| for (a in listOf("a")) { | |
| g { | |
| for (b in listOf("b")) { | |
| return b | |
| } | |
| } | |
| } | |
| } finally { | |
| x = "OK" | |
| } | |
| return "FAIL" | |
| } | |
| fun box() { | |
| val result = compute() | |
| val localX = x | |
| } | |
| // EXPECTATIONS JVM +USE_INLINE_SCOPES_NUMBERS | |
| // test.kt:42 box: | |
| // test.kt:27 compute: | |
| // test.kt:28 compute: | |
| // test.kt:29 compute: a:java.lang.String="a":java.lang.String | |
| // test.kt:16 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int | |
| // test.kt:17 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int | |
| // test.kt:18 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String | |
| // test.kt:7 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\131:int=0:int | |
| // test.kt:8 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\131:int=0:int | |
| // test.kt:9 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\131:int=0:int, hLocal\2:java.lang.String="hLocal":java.lang.String | |
| // test.kt:30 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\131:int=0:int, hLocal\2:java.lang.String="hLocal":java.lang.String, $i$a$-g-TestKt$compute$1\3\134\0:int=0:int | |
| // test.kt:31 compute: a:java.lang.String="a":java.lang.String, $i$f$g\1\29:int=0:int, gLocal\1:java.lang.String="gLocal":java.lang.String, $i$f$h\2\131:int=0:int, hLocal\2:java.lang.String="hLocal":java.lang.String, $i$a$-g-TestKt$compute$1\3\134\0:int=0:int, b\3:java.lang.String="b":java.lang.String | |
| // test.kt:11 compute: a:java.lang.String="a":java.lang.String | |
| // test.kt:20 compute: a:java.lang.String="a":java.lang.String | |
| // test.kt:36 compute: | |
| // test.kt:31 compute: a:java.lang.String="a":java.lang.String | |
| // test.kt:42 box: | |
| // test.kt:43 box: result:java.lang.String="b":java.lang.String | |
| // test.kt:44 box: result:java.lang.String="b":java.lang.String, localX:java.lang.String="OK":java.lang.String | |
| // EXPECTATIONS JVM | |
| // test.kt:42 box: | |
| // test.kt:27 compute: | |
| // test.kt:28 compute: | |
| // test.kt:29 compute: a:java.lang.String="a":java.lang.String | |
| // test.kt:16 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int | |
| // test.kt:17 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int | |
| // test.kt:18 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, gLocal$iv:java.lang.String="gLocal":java.lang.String | |
| // test.kt:7 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, gLocal$iv:java.lang.String="gLocal":java.lang.String, $i$f$h:int=0:int | |
| // test.kt:8 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, gLocal$iv:java.lang.String="gLocal":java.lang.String, $i$f$h:int=0:int | |
| // test.kt:9 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, gLocal$iv:java.lang.String="gLocal":java.lang.String, $i$f$h:int=0:int, hLocal$iv$iv:java.lang.String="hLocal":java.lang.String | |
| // test.kt:30 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, gLocal$iv:java.lang.String="gLocal":java.lang.String, $i$f$h:int=0:int, hLocal$iv$iv:java.lang.String="hLocal":java.lang.String, $i$a$-g-TestKt$compute$1:int=0:int | |
| // test.kt:31 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, gLocal$iv:java.lang.String="gLocal":java.lang.String, $i$f$h:int=0:int, hLocal$iv$iv:java.lang.String="hLocal":java.lang.String, $i$a$-g-TestKt$compute$1:int=0:int, b:java.lang.String="b":java.lang.String | |
| // test.kt:11 compute: a:java.lang.String="a":java.lang.String | |
| // test.kt:20 compute: a:java.lang.String="a":java.lang.String | |
| // test.kt:36 compute: | |
| // test.kt:31 compute: a:java.lang.String="a":java.lang.String | |
| // test.kt:42 box: | |
| // test.kt:43 box: result:java.lang.String="b":java.lang.String | |
| // test.kt:44 box: result:java.lang.String="b":java.lang.String, localX:java.lang.String="OK":java.lang.String | |
| // EXPECTATIONS JS_IR | |
| // test.kt:42 box: | |
| // test.kt:28 compute: | |
| // test.kt:28 compute: | |
| // test.kt:28 compute: | |
| // test.kt:28 compute: | |
| // test.kt:17 compute: a="a":kotlin.String | |
| // test.kt:8 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String | |
| // test.kt:30 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String, hLocal="hLocal":kotlin.String | |
| // test.kt:30 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String, hLocal="hLocal":kotlin.String | |
| // test.kt:30 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String, hLocal="hLocal":kotlin.String | |
| // test.kt:30 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String, hLocal="hLocal":kotlin.String | |
| // test.kt:31 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String, hLocal="hLocal":kotlin.String, b="b":kotlin.String | |
| // test.kt:11 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String, hLocal="hLocal":kotlin.String, b="b":kotlin.String | |
| // test.kt:20 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String, hLocal="hLocal":kotlin.String, b="b":kotlin.String, h="h":kotlin.String | |
| // test.kt:36 compute: a="a":kotlin.String, gLocal="gLocal":kotlin.String, hLocal="hLocal":kotlin.String, b="b":kotlin.String, h="h":kotlin.String, g="g":kotlin.String | |
| // EXPECTATIONS WASM | |
| // test.kt:42 $box: $result:(ref null $kotlin.String)=null, $localX:(ref null $kotlin.String)=null (17) | |
| // test.kt:28 $compute: $a:(ref null $kotlin.String)=null, $gLocal:(ref null $kotlin.String)=null, $hLocal:(ref null $kotlin.String)=null, $b:(ref null $kotlin.String)=null, $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (25, 25, 25, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18) | |
| // test.kt:29 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref null $kotlin.String)=null, $hLocal:(ref null $kotlin.String)=null, $b:(ref null $kotlin.String)=null, $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (12) | |
| // test.kt:17 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref null $kotlin.String)=null, $hLocal:(ref null $kotlin.String)=null, $b:(ref null $kotlin.String)=null, $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (21, 21, 21, 21) | |
| // test.kt:18 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref $kotlin.String)=(ref $kotlin.String), $hLocal:(ref null $kotlin.String)=null, $b:(ref null $kotlin.String)=null, $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (8) | |
| // test.kt:8 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref $kotlin.String)=(ref $kotlin.String), $hLocal:(ref null $kotlin.String)=null, $b:(ref null $kotlin.String)=null, $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (21, 21, 21, 21) | |
| // test.kt:9 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref $kotlin.String)=(ref $kotlin.String), $hLocal:(ref $kotlin.String)=(ref $kotlin.String), $b:(ref null $kotlin.String)=null, $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (8) | |
| // test.kt:30 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref $kotlin.String)=(ref $kotlin.String), $hLocal:(ref $kotlin.String)=(ref $kotlin.String), $b:(ref null $kotlin.String)=null, $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (33, 33, 33, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26) | |
| // test.kt:31 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref $kotlin.String)=(ref $kotlin.String), $hLocal:(ref $kotlin.String)=(ref $kotlin.String), $b:(ref $kotlin.String)=(ref $kotlin.String), $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (27, 20) | |
| // test.kt:11 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref $kotlin.String)=(ref $kotlin.String), $hLocal:(ref $kotlin.String)=(ref $kotlin.String), $b:(ref $kotlin.String)=(ref $kotlin.String), $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (16, 16, 16, 16, 16, 16, 16) | |
| // test.kt:20 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref $kotlin.String)=(ref $kotlin.String), $hLocal:(ref $kotlin.String)=(ref $kotlin.String), $b:(ref $kotlin.String)=(ref $kotlin.String), $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (16, 16, 16, 16, 16, 16, 16) | |
| // test.kt:36 $compute: $a:(ref $kotlin.String)=(ref $kotlin.String), $gLocal:(ref $kotlin.String)=(ref $kotlin.String), $hLocal:(ref $kotlin.String)=(ref $kotlin.String), $b:(ref $kotlin.String)=(ref $kotlin.String), $h:(ref null $kotlin.String)=null, $g:(ref null $kotlin.String)=null (8, 12, 12, 12, 8, 8, 8) | |
| // test.kt:42 $box: $result:(ref null $kotlin.String)=null, $localX:(ref null $kotlin.String)=null (17) | |
| // test.kt:43 $box: $result:(ref $kotlin.String)=(ref $kotlin.String), $localX:(ref null $kotlin.String)=null (17, 17) | |
| // test.kt:44 $box: $result:(ref $kotlin.String)=(ref $kotlin.String), $localX:(ref $kotlin.String)=(ref $kotlin.String) (1, 1) |