[JVM] Port Stepping and LocalVariable tests to new test infra.

This is in preparation for enabling the tests for FIR which will
be easier to do when the tests are on the new infrastructure.
This commit is contained in:
Mads Ager
2021-10-14 12:45:38 +02:00
committed by TeamCityServer
parent f1c1094393
commit e9c9d5731e
155 changed files with 1468 additions and 1523 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ fun box() {
}
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:3 box:
// test.kt:4 box:
// test.kt:5 box: a:int=1:int
+1 -1
View File
@@ -7,7 +7,7 @@ fun box() {
val b = a.copy(b = 3.0)
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:6 box:
// test.kt:3 <init>: a:double=1.0:double, b:double=2.0:double
// test.kt:6 box:
@@ -1,4 +1,4 @@
// WITH_RUNTIME
//FILE: test.kt
fun box() {
@@ -8,9 +8,9 @@ fun box() {
}
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:5 box:
// test.kt:6 box: map:java.util.Map=java.util.Collections$SingletonMap
// test.kt:7 box: map:java.util.Map=java.util.Collections$SingletonMap, a:java.lang.String="1":java.lang.String, b:java.lang.String="23":java.lang.String
// test.kt:6 box: map:java.util.Map=java.util.Collections$SingletonMap
// test.kt:9 box: map:java.util.Map=java.util.Collections$SingletonMap
// test.kt:9 box: map:java.util.Map=java.util.Collections$SingletonMap
@@ -8,7 +8,7 @@ fun box() {
foo(A("O", 123)) { (x, y) -> x + y }
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:8 box:
// test.kt:3 <init>: x:java.lang.String="O":java.lang.String, y:int=123:int
// test.kt:8 box:
+1 -1
View File
@@ -7,7 +7,7 @@ fun box() {
foo()
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:7 box:
// test.kt:4 foo:
// test.kt:8 box:
+1 -1
View File
@@ -10,7 +10,7 @@ fun box() {
y++
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:8 box:
// test.kt:2 <init>:
// test.kt:8 box:
+3 -3
View File
@@ -1,5 +1,5 @@
// FILE: test.kt
// WITH_RUNTIME
// FILE: test.kt
class C {
@kotlin.jvm.JvmOverloads fun foo(firstParam: Int, secondParam: String = "") {
}
@@ -9,9 +9,9 @@ fun box() {
C().foo(4)
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:9 box:
// test.kt:3 <init>:
// test.kt:9 box:
// test.kt:5 foo: firstParam:int=4:int, secondParam:java.lang.String="":java.lang.String
// test.kt:10 box:
// test.kt:10 box:
+9 -10
View File
@@ -27,28 +27,27 @@ fun box() {
// variables local to the function, and hence need no name mangling to
// properly figure in the debugger.
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:13 box:
// test.kt:5 foo:
// LOCAL VARIABLES JVM
// EXPECTATIONS JVM
// test.kt:6 foo: x:int=1:int
// LOCAL VARIABLES JVM
// test.kt:9 foo: x:int=1:int, $fun$bar$1:TestKt$foo$1=TestKt$foo$1
// LOCAL VARIABLES JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:9 foo: x:int=1:int
// LOCAL VARIABLES JVM
// EXPECTATIONS JVM
// test.kt:7 invoke:
// test.kt:8 invoke: y:int=1:int
// LOCAL VARIABLES JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:7 foo$bar: x:int=1:int
// test.kt:8 foo$bar: x:int=1:int, y:int=1:int
// LOCAL VARIABLES JVM
// EXPECTATIONS JVM
// test.kt:10 foo: x:int=1:int, $fun$bar$1:TestKt$foo$1=TestKt$foo$1
// test.kt:14 box:
// LOCAL VARIABLES JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:10 foo: x:int=1:int
// test.kt:14 box:
// test.kt:14 box:
+3 -3
View File
@@ -18,14 +18,14 @@ fun box() {
// - the _declaration_ of the local function does not figure in the byte code
// of the outer function and hence, has no line number
// LOCAL VARIABLES
// LOCAL VARIABLES JVM
// EXPECTATIONS
// EXPECTATIONS JVM
// test.kt:10 box:
// test.kt:5 foo:
// test.kt:7 foo: $fun$bar$1:TestKt$foo$1=TestKt$foo$1
// test.kt:11 box:
// LOCAL VARIABLES JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:10 box:
// test.kt:7 foo:
// test.kt:11 box:
@@ -11,7 +11,7 @@ fun box() {
x.Bar()
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:10 box:
// test.kt:4 <init>:
// test.kt:10 box:
@@ -6,14 +6,14 @@ fun blockFun(blockArg: String.() -> Unit) =
fun box() {
blockFun {
println(this)
this
}
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:8 box:
// test.kt:5 blockFun: blockArg:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:9 invoke: $this$blockFun:java.lang.String="OK":java.lang.String
// test.kt:10 invoke: $this$blockFun:java.lang.String="OK":java.lang.String
// test.kt:5 blockFun: blockArg:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:11 box:
// test.kt:11 box:
@@ -10,7 +10,7 @@ fun box() {
}
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:8 box:
// test.kt:4 foo: block:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:9 invoke: $this$foo:long=1:long
@@ -7,7 +7,7 @@ fun box() {
"OK".test()
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:7 box:
// test.kt:4 test: $this$test:java.lang.String="OK":java.lang.String
// test.kt:8 box:
@@ -7,7 +7,7 @@ fun box() {
"OK".foo(42)
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:7 box:
// test.kt:4 foo: $this$foo:java.lang.String="OK":java.lang.String, a:int=42:int
// test.kt:8 box:
@@ -6,14 +6,14 @@ fun blockFun(blockArg: String.() -> Unit) =
fun box() {
blockFun {
println(this)
this
}
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:8 box:
// test.kt:5 blockFun: blockArg:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:9 invoke: $this$blockFun:java.lang.String="OK":java.lang.String
// test.kt:10 invoke: $this$blockFun:java.lang.String="OK":java.lang.String
// test.kt:5 blockFun: blockArg:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:11 box:
// test.kt:11 box:
@@ -6,14 +6,14 @@ fun blockFun(blockArg: String.() -> Unit) =
fun box() {
blockFun label@{
println(this)
this
}
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:8 box:
// test.kt:5 blockFun: blockArg:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:9 invoke: $this$label:java.lang.String="OK":java.lang.String
// test.kt:10 invoke: $this$label:java.lang.String="OK":java.lang.String
// test.kt:5 blockFun: blockArg:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:11 box:
// test.kt:11 box:
@@ -6,14 +6,14 @@ fun blockFun(blockArg: String.() -> Unit) =
fun box() {
blockFun ({
println(this)
this
})
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:8 box:
// test.kt:5 blockFun: blockArg:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:9 invoke: $this$blockFun:java.lang.String="OK":java.lang.String
// test.kt:10 invoke: $this$blockFun:java.lang.String="OK":java.lang.String
// test.kt:5 blockFun: blockArg:kotlin.jvm.functions.Function1=TestKt$box$1
// test.kt:11 box:
// test.kt:11 box:
@@ -1,5 +1,5 @@
// WITH_COROUTINES
// Code generation problem with JVM backend.
// IGNORE_BACKEND: JVM
// FILE: test.kt
class A {
suspend fun foo() {}
@@ -9,10 +9,10 @@ suspend fun box() {
A().foo()
}
// LOCAL VARIABLES
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// EXPECTATIONS
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:4 <init>:
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
@@ -1,5 +1,5 @@
// WITH_COROUTINES
// Code generation problem with JVM backend.
// IGNORE_BACKEND: JVM
// FILE: test.kt
class A {
suspend fun foo() {}
@@ -14,20 +14,10 @@ suspend fun box() {
A().foo1(42)
}
// The lambda object constructor has a local variables table on the IR backend.
// LOCAL VARIABLES
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// EXPECTATIONS
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:4 <init>:
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:6 foo1:
// LOCAL VARIABLES JVM
// test.kt:-1 <init>:
// LOCAL VARIABLES JVM_IR
// test.kt:-1 <init>: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// LOCAL VARIABLES
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:6 foo1:
// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=A$foo1$1
@@ -37,5 +27,5 @@ suspend fun box() {
// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:10 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
@@ -1,8 +1,8 @@
// WITH_COROUTINES
// Code generation problem with JVM backend.
// IGNORE_BACKEND: JVM
// FILE: test.kt
suspend fun box() {}
// LOCAL VARIABLES
// test.kt:4 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// EXPECTATIONS
// test.kt:4 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
@@ -1,5 +1,5 @@
// WITH_COROUTINES
// Code generation problem with JVM backend.
// IGNORE_BACKEND: JVM
// FILE: test.kt
class A
@@ -10,10 +10,10 @@ suspend fun box() {
}
// LOCAL VARIABLES
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// EXPECTATIONS
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:4 <init>:
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:9 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:10 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
@@ -1,5 +1,5 @@
// WITH_COROUTINES
// Code generation problem with JVM backend.
// IGNORE_BACKEND: JVM
// FILE: test.kt
suspend fun foo() {}
suspend fun foo1(l: Long) {
@@ -12,18 +12,8 @@ suspend fun box() {
foo1(42)
}
// The lambda object constructor has a local variables table on the IR backend.
// LOCAL VARIABLES
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:5 foo1:
// LOCAL VARIABLES JVM
// test.kt:-1 <init>:
// LOCAL VARIABLES JVM_IR
// test.kt:-1 <init>: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:5 foo1:
// test.kt:6 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:4 foo: $completion:kotlin.coroutines.Continuation=TestKt$foo1$1
@@ -33,5 +23,5 @@ suspend fun box() {
// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:13 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:13 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
@@ -1,5 +1,5 @@
// WITH_COROUTINES
// Code generation problem with JVM backend.
// IGNORE_BACKEND: JVM
// FILE: test.kt
class A
@@ -16,18 +16,10 @@ suspend fun box() {
// The lambda object constructor has a local variables table on the IR backend.
// LOCAL VARIABLES
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// EXPECTATIONS
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:4 <init>:
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:7 foo1:
// LOCAL VARIABLES JVM
// test.kt:-1 <init>:
// LOCAL VARIABLES JVM_IR
// test.kt:-1 <init>: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// LOCAL VARIABLES
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:7 foo1:
// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, $this$foo1:A=A, l:long=42:long
// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=TestKt$foo1$1
@@ -37,5 +29,5 @@ suspend fun box() {
// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:10 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:11 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:15 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
@@ -1,4 +1,4 @@
// WITH_COROUTINES
// WITH_RUNTIME
// FILE: test.kt
inline fun hasLocal(): Int {
val x = 41
@@ -18,16 +18,7 @@ suspend fun box() {
hasLocal()
}
// LOCAL VARIABLES
// test.kt:10 box:
// LOCAL VARIABLES JVM_IR
// test.kt:-1 <init>: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// LOCAL VARIABLES JVM
// test.kt:-1 <init>:
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:10 box:
// test.kt:12 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:8 h: $completion:kotlin.coroutines.Continuation=TestKt$box$1
@@ -1,4 +1,7 @@
// WITH_COROUTINES
// The JVM backend does not have `x` visible in the locals table for the for loop at all.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
suspend fun h() { }
@@ -17,33 +20,28 @@ suspend fun box() {
}
}
// The current backend does not have `x` visible in the locals table for the for loop at all.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:7 box:
// test.kt:-1 <init>: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:7 box:
// test.kt:9 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:3 h: $completion:kotlin.coroutines.Continuation=TestKt$box$1
// test.kt:9 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:10 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:11 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:5 f: x:int=0:int
// test.kt:11 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:10 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:11 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:5 f: x:int=1:int
// test.kt:11 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:10 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:14 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:15 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:16 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:5 f: x:int=0:int
// test.kt:16 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:15 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:16 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:5 f: x:int=1:int
// test.kt:16 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:15 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// EXPECTATIONS
// test.kt:10 box:
// test.kt:12 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:6 h: $completion:kotlin.coroutines.Continuation=TestKt$box$1
// test.kt:12 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:13 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:14 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:8 f: x:int=0:int
// test.kt:14 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:13 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:14 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:8 f: x:int=1:int
// test.kt:14 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:13 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:17 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:18 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:19 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:8 f: x:int=0:int
// test.kt:19 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:18 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=0:int
// test.kt:19 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:8 f: x:int=1:int
// test.kt:19 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:18 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, x:int=1:int
// test.kt:21 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
+4 -13
View File
@@ -1,4 +1,4 @@
// WITH_COROUTINES
// WITH_RUNTIME
// FILE: test.kt
import kotlin.coroutines.intrinsics.*
@@ -26,23 +26,14 @@ suspend fun box() {
val a = suspendBar()
}
// LOCAL VARIABLES
// test.kt:25 box:
// LOCAL VARIABLES JVM_IR
// test.kt:-1 <init>: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// LOCAL VARIABLES JVM
// test.kt:-1 <init>:
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:25 box:
// test.kt:26 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null
// test.kt:19 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar:int=0:int
// LOCAL VARIABLES JVM
// EXPECTATIONS JVM
// test.kt:19 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar:int=0:int
// test.kt:14 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar:int=0:int, $this$extensionFun$iv$iv:AtomicInt=AtomicInt, $i$f$extensionFun:int=0:int
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:14 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar:int=0:int, $this$extensionFun$iv$iv:AtomicInt=AtomicInt, $i$f$extensionFun:int=0:int
// test.kt:15 box: $continuation:kotlin.coroutines.Continuation=TestKt$box$1, $result:java.lang.Object=null, $i$f$suspendBar:int=0:int, $this$extensionFun$iv$iv:AtomicInt=AtomicInt, $i$f$extensionFun:int=0:int
// test.kt:6 getValue:
+4 -4
View File
@@ -1,10 +1,10 @@
// WITH_COROUTINES
// WITH_RUNTIME
// FILE: test.kt
suspend fun box() {
var x = 1
}
// LOCAL VARIABLES
// test.kt:5 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:6 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation, x:int=1:int
// EXPECTATIONS
// test.kt:5 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:6 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1, x:int=1:int
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// WITH_COROUTINES
// FILE: test.kt
class A {
operator fun component1() = "O"
@@ -13,46 +13,28 @@ suspend fun box() = foo(A()) { (x_param, _, y_param) ->
x_param + y_param
}
// TODO: The backends disagree on the local variables in invoke/invokeSuspend methods
// LOCAL VARIABLES
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// EXPECTATIONS
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:4 <init>:
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:10 foo: a:A=A, block:kotlin.jvm.functions.Function2=TestKt$box$2, $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// LOCAL VARIABLES JVM
// test.kt:-1 <init>:
// test.kt:-1 create: value:java.lang.Object=A, completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:-1 invoke:
// LOCAL VARIABLES JVM_IR
// test.kt:-1 <init>: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:-1 create: value:java.lang.Object=A, $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:-1 invoke: p1:A=A, p2:kotlin.coroutines.Continuation=helpers.ResultContinuation
// LOCAL VARIABLES
// test.kt:12 invokeSuspend:
// test.kt:12 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:10 foo: a:A=A, block:kotlin.jvm.functions.Function2=TestKt$box$2, $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:5 component1:
// test.kt:12 invokeSuspend: $result:java.lang.Object=kotlin.Unit, $dstr$x_param$_u24__u24$y_param:A=A
// test.kt:7 component3:
// LOCAL VARIABLES JVM
// EXPECTATIONS JVM_IR
// test.kt:12 invokeSuspend: $result:java.lang.Object=kotlin.Unit, $dstr$x_param$_u24__u24$y_param:A=A, x_param:java.lang.String="O":java.lang.String
// EXPECTATIONS JVM
// test.kt:12 invokeSuspend: $result:java.lang.Object=kotlin.Unit, $dstr$x_param$_u24__u24$y_param:A=A
// LOCAL VARIABLES JVM_IR
// test.kt:12 invokeSuspend: $result:java.lang.Object=kotlin.Unit, $dstr$x_param$_u24__u24$y_param:A=A, x_param:java.lang.String="O":java.lang.String
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:13 invokeSuspend: $result:java.lang.Object=kotlin.Unit, $dstr$x_param$_u24__u24$y_param:A=A, x_param:java.lang.String="O":java.lang.String, y_param:java.lang.String="K":java.lang.String
// LOCAL VARIABLES JVM
// EXPECTATIONS JVM_IR
// test.kt:-1 invoke: p1:A=A, p2:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// EXPECTATIONS JVM
// test.kt:-1 invoke:
// LOCAL VARIABLES JVM_IR
// test.kt:-1 invoke: p1:A=A, p2:kotlin.coroutines.Continuation=helpers.ResultContinuation
// LOCAL VARIABLES
// test.kt:10 foo: a:A=A, block:kotlin.jvm.functions.Function2=TestKt$box$2, $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation
// EXPECTATIONS
// test.kt:10 foo: a:A=A, block:kotlin.jvm.functions.Function2=TestKt$box$2, $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
// test.kt:14 box: $completion:kotlin.coroutines.Continuation=Generated_Box_MainKt$main$1
+14 -13
View File
@@ -1,3 +1,7 @@
// The old backend has the local y covering the finally block as well.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
fun box() {
var result = ""
@@ -14,16 +18,13 @@ fun box() {
}
}
// The old backend has the local y covering the finally block as well.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:3 box:
// test.kt:4 box: result:java.lang.String="":java.lang.String
// test.kt:5 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:6 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:7 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:8 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:11 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:12 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:15 box: result:java.lang.String="yz":java.lang.String
// EXPECTATIONS
// test.kt:7 box:
// test.kt:8 box: result:java.lang.String="":java.lang.String
// test.kt:9 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:10 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:11 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:12 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:15 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:16 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:19 box: result:java.lang.String="yz":java.lang.String
+20 -20
View File
@@ -1,3 +1,6 @@
// The local variables `y` and `i` are visible in the finally block with old backend.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
inline fun f(block: () -> Unit) {
@@ -33,23 +36,20 @@ fun box() {
val localX = x
}
// The local variables `y` and `i` are visible in the finally block with old backend.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:32 box:
// test.kt:17 compute:
// test.kt:18 compute:
// test.kt:19 compute: y:int=42:int
// test.kt:20 compute: y:int=42:int, i:int=0:int
// test.kt:4 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:5 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:6 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, z$iv:int=32:int
// test.kt:7 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, z$iv:int=32:int, j$iv:int=0:int
// test.kt:10 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:21 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, $i$a$-f-TestKt$compute$1:int=0:int
// test.kt:25 compute:
// test.kt:26 compute: s2:java.lang.String="OK":java.lang.String
// test.kt:32 box:
// test.kt:33 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:34 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS
// test.kt:35 box:
// test.kt:20 compute:
// test.kt:21 compute:
// test.kt:22 compute: y:int=42:int
// test.kt:23 compute: y:int=42:int, i:int=0:int
// test.kt:7 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:8 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:9 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, z$iv:int=32:int
// test.kt:10 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, z$iv:int=32:int, j$iv:int=0:int
// test.kt:13 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:24 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, $i$a$-f-TestKt$compute$1:int=0:int
// test.kt:28 compute:
// test.kt:29 compute: s2:java.lang.String="OK":java.lang.String
// test.kt:35 box:
// test.kt:36 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:37 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
+15 -15
View File
@@ -1,3 +1,6 @@
// The local variables `z` and `y` are visible in the finally block with old backend.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
fun box(): String {
@@ -20,19 +23,16 @@ fun box(): String {
return "FAIL"
}
// The local variables `z` and `y` are visible in the finally block with old backend.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:4 box:
// test.kt:5 box:
// test.kt:6 box: i:int=0:int
// test.kt:7 box: i:int=0:int
// test.kt:8 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// EXPECTATIONS
// test.kt:7 box:
// test.kt:8 box:
// test.kt:9 box: i:int=0:int
// test.kt:10 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException
// test.kt:11 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String
// test.kt:12 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:14 box: i:int=0:int
// test.kt:17 box:
// test.kt:18 box:
// test.kt:10 box: i:int=0:int
// test.kt:11 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// test.kt:12 box: i:int=0:int
// test.kt:13 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException
// test.kt:14 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String
// test.kt:15 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:17 box: i:int=0:int
// test.kt:20 box:
// test.kt:21 box:
+15 -15
View File
@@ -1,3 +1,6 @@
// The local variables `z` and `y` are visible in the finally block with old backend.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
fun box(): String {
@@ -20,19 +23,16 @@ fun box(): String {
return "FAIL"
}
// The local variables `z` and `y` are visible in the finally block with old backend.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:4 box:
// test.kt:5 box:
// test.kt:6 box: i:int=0:int
// test.kt:7 box: i:int=0:int
// test.kt:8 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// EXPECTATIONS
// test.kt:7 box:
// test.kt:8 box:
// test.kt:9 box: i:int=0:int
// test.kt:10 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException
// test.kt:11 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String
// test.kt:12 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:14 box: i:int=0:int
// test.kt:17 box:
// test.kt:18 box:
// test.kt:10 box: i:int=0:int
// test.kt:11 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// test.kt:12 box: i:int=0:int
// test.kt:13 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException
// test.kt:14 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String
// test.kt:15 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:17 box: i:int=0:int
// test.kt:20 box:
// test.kt:21 box:
+13 -13
View File
@@ -1,3 +1,6 @@
// The local variables `y` and `i` are visible in finally blocks with old backend.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
fun box(): String {
@@ -19,17 +22,14 @@ fun box(): String {
return "FAIL3"
}
// The local variables `y` and `i` are visible in finally blocks with old backend.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:4 box:
// test.kt:5 box:
// test.kt:6 box: i:int=0:int
// test.kt:7 box: i:int=0:int
// test.kt:8 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// EXPECTATIONS
// test.kt:7 box:
// test.kt:8 box:
// test.kt:9 box: i:int=0:int
// test.kt:10 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException
// test.kt:11 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String
// test.kt:13 box: i:int=0:int
// test.kt:17 box:
// test.kt:10 box: i:int=0:int
// test.kt:11 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// test.kt:12 box: i:int=0:int
// test.kt:13 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException
// test.kt:14 box: i:int=0:int, e:java.lang.Exception=java.lang.RuntimeException, y:java.lang.String="y":java.lang.String
// test.kt:16 box: i:int=0:int
// test.kt:20 box:
+2 -2
View File
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// FILE: test.kt
fun box(): String {
try {
for (i in 0 until 1) {
@@ -16,7 +16,7 @@ fun box(): String {
return "FAIL"
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:4 box:
// test.kt:5 box:
// test.kt:6 box: i:int=0:int
+5 -5
View File
@@ -1,5 +1,5 @@
// WITH_RUNTIME
// FILE: test.kt
fun box(): String {
try {
for (i in 0 until 1) {
@@ -16,16 +16,16 @@ fun box(): String {
return "FAIL"
}
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:4 box:
// test.kt:5 box:
// test.kt:6 box: i:int=0:int
// test.kt:7 box: i:int=0:int
// test.kt:8 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// test.kt:10 box: i:int=0:int
// LOCAL VARIABLES JVM
// EXPECTATIONS JVM
// test.kt:5 box: i:int=0:int
// LOCAL VARIABLES JVM_IR
// EXPECTATIONS JVM_IR
// test.kt:5 box: i:int=0:int
// LOCAL VARIABLES
// EXPECTATIONS
// test.kt:14 box:
+11 -12
View File
@@ -1,5 +1,7 @@
// The local `i` is visible in the finally block with old backend.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
fun box(): String {
try {
for (i in 0 until 1) {
@@ -16,14 +18,11 @@ fun box(): String {
return "FAIL2"
}
// The local `i` is visible in the finally block with old backend.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:4 box:
// test.kt:5 box:
// test.kt:6 box: i:int=0:int
// test.kt:7 box: i:int=0:int
// test.kt:8 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// test.kt:10 box: i:int=0:int
// test.kt:14 box:
// EXPECTATIONS
// test.kt:6 box:
// test.kt:7 box:
// test.kt:8 box: i:int=0:int
// test.kt:9 box: i:int=0:int
// test.kt:10 box: i:int=0:int, x:java.lang.String="x":java.lang.String
// test.kt:12 box: i:int=0:int
// test.kt:16 box:
+9 -9
View File
@@ -1,3 +1,7 @@
// IGNORE_BACKEND: JVM
// The old backend steps on line 4, 5, 9, and 8. No step on the throw, and a step on the end
// brace of the finally before going into the actual finally code.
// FILE: test.kt
fun box(): String {
@@ -10,13 +14,9 @@ fun box(): String {
return "FAIL"
}
// IGNORE_BACKEND: JVM
// The old backend steps on line 4, 5, 9, and 8. No step on the throw, and a step on the end
// brace of the finally before going into the actual finally code.
// LOCAL VARIABLES
// test.kt:4 box:
// test.kt:5 box:
// test.kt:6 box: x:java.lang.String="x":java.lang.String
// test.kt:7 box:
// EXPECTATIONS
// test.kt:8 box:
// test.kt:9 box:
// test.kt:10 box: x:java.lang.String="x":java.lang.String
// test.kt:11 box:
// test.kt:12 box:
+21 -21
View File
@@ -1,3 +1,6 @@
// The old backend has the local y covering the finally block as well.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
fun box() {
var result = ""
@@ -14,24 +17,21 @@ fun box() {
}
}
// The old backend has the local y covering the finally block as well.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:3 box:
// test.kt:4 box: result:java.lang.String="":java.lang.String
// test.kt:5 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:6 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:7 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:8 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:11 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:12 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:4 box: result:java.lang.String="yz":java.lang.String
// test.kt:5 box: result:java.lang.String="yz":java.lang.String, x:java.lang.String="B":java.lang.String
// test.kt:6 box: result:java.lang.String="yz":java.lang.String, x:java.lang.String="B":java.lang.String
// test.kt:7 box: result:java.lang.String="yz":java.lang.String, x:java.lang.String="B":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:8 box: result:java.lang.String="yzy":java.lang.String, x:java.lang.String="B":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:11 box: result:java.lang.String="yzy":java.lang.String, x:java.lang.String="B":java.lang.String
// test.kt:12 box: result:java.lang.String="yzy":java.lang.String, x:java.lang.String="B":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:4 box: result:java.lang.String="yzyz":java.lang.String
// test.kt:15 box: result:java.lang.String="yzyz":java.lang.String
// EXPECTATIONS
// test.kt:6 box:
// test.kt:7 box: result:java.lang.String="":java.lang.String
// test.kt:8 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:9 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:10 box: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:11 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:14 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:15 box: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:7 box: result:java.lang.String="yz":java.lang.String
// test.kt:8 box: result:java.lang.String="yz":java.lang.String, x:java.lang.String="B":java.lang.String
// test.kt:9 box: result:java.lang.String="yz":java.lang.String, x:java.lang.String="B":java.lang.String
// test.kt:10 box: result:java.lang.String="yz":java.lang.String, x:java.lang.String="B":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:11 box: result:java.lang.String="yzy":java.lang.String, x:java.lang.String="B":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:14 box: result:java.lang.String="yzy":java.lang.String, x:java.lang.String="B":java.lang.String
// test.kt:15 box: result:java.lang.String="yzy":java.lang.String, x:java.lang.String="B":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:7 box: result:java.lang.String="yzyz":java.lang.String
// test.kt:18 box: result:java.lang.String="yzyz":java.lang.String
+16 -16
View File
@@ -1,3 +1,6 @@
// The old backend has the local y covering the finally block as well.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
fun compute(): String {
@@ -20,19 +23,16 @@ fun box() {
compute()
}
// The old backend has the local y covering the finally block as well.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:20 box:
// test.kt:4 compute:
// test.kt:5 compute: result:java.lang.String="":java.lang.String
// test.kt:6 compute: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:7 compute: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:8 compute: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:9 compute: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:12 compute: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:13 compute: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:9 compute: result:java.lang.String="yz":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:20 box:
// test.kt:21 box:
// EXPECTATIONS
// test.kt:23 box:
// test.kt:7 compute:
// test.kt:8 compute: result:java.lang.String="":java.lang.String
// test.kt:9 compute: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:10 compute: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:11 compute: result:java.lang.String="":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:12 compute: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:15 compute: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String
// test.kt:16 compute: result:java.lang.String="y":java.lang.String, x:java.lang.String="A":java.lang.String, z:java.lang.String="z":java.lang.String
// test.kt:12 compute: result:java.lang.String="yz":java.lang.String, x:java.lang.String="A":java.lang.String, y:java.lang.String="y":java.lang.String
// test.kt:23 box:
// test.kt:24 box:
+21 -21
View File
@@ -1,3 +1,6 @@
// The old backend gets the local variables for finally blocks wrong.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
fun compute(): String {
@@ -26,24 +29,21 @@ fun box() {
compute()
}
// The old backend gets the local variables for finally blocks wrong.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:26 box:
// test.kt:4 compute:
// test.kt:5 compute: result:java.lang.String="":java.lang.String
// test.kt:6 compute: result:java.lang.String="":java.lang.String
// test.kt:7 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String
// test.kt:8 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String
// test.kt:9 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String
// test.kt:10 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String, i:int=0:int
// test.kt:11 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String, i:int=0:int, e:java.lang.String="e":java.lang.String
// test.kt:12 compute: result:java.lang.String="b":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String, i:int=0:int, e:java.lang.String="e":java.lang.String
// test.kt:15 compute: result:java.lang.String="b":java.lang.String, a:java.lang.String="a":java.lang.String
// test.kt:16 compute: result:java.lang.String="b":java.lang.String, a:java.lang.String="a":java.lang.String, c:java.lang.String="c":java.lang.String
// test.kt:19 compute: result:java.lang.String="bc":java.lang.String
// test.kt:20 compute: result:java.lang.String="bc":java.lang.String, d:java.lang.String="d":java.lang.String
// test.kt:12 compute: result:java.lang.String="bcd":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String, i:int=0:int, e:java.lang.String="e":java.lang.String
// test.kt:26 box:
// test.kt:27 box:
// EXPECTATIONS
// test.kt:29 box:
// test.kt:7 compute:
// test.kt:8 compute: result:java.lang.String="":java.lang.String
// test.kt:9 compute: result:java.lang.String="":java.lang.String
// test.kt:10 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String
// test.kt:11 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String
// test.kt:12 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String
// test.kt:13 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String, i:int=0:int
// test.kt:14 compute: result:java.lang.String="":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String, i:int=0:int, e:java.lang.String="e":java.lang.String
// test.kt:15 compute: result:java.lang.String="b":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String, i:int=0:int, e:java.lang.String="e":java.lang.String
// test.kt:18 compute: result:java.lang.String="b":java.lang.String, a:java.lang.String="a":java.lang.String
// test.kt:19 compute: result:java.lang.String="b":java.lang.String, a:java.lang.String="a":java.lang.String, c:java.lang.String="c":java.lang.String
// test.kt:22 compute: result:java.lang.String="bc":java.lang.String
// test.kt:23 compute: result:java.lang.String="bc":java.lang.String, d:java.lang.String="d":java.lang.String
// test.kt:15 compute: result:java.lang.String="bcd":java.lang.String, a:java.lang.String="a":java.lang.String, b:java.lang.String="b":java.lang.String, i:int=0:int, e:java.lang.String="e":java.lang.String
// test.kt:29 box:
// test.kt:30 box:
+15 -16
View File
@@ -1,3 +1,6 @@
// JVM backend has the `a` local covering the finally block. It shouldn't.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
inline fun g(block: () -> Unit) {
@@ -26,19 +29,15 @@ fun box() {
val localX = x
}
// JVM backend has the `a` local covering the finally block. It shouldn't.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:25 box:
// test.kt:10 compute:
// test.kt:11 compute:
// test.kt:12 compute: a:java.lang.String="a":java.lang.String
// test.kt:4 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int
// test.kt:13 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, $i$a$-g-TestKt$compute$1:int=0:int
// test.kt:14 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, $i$a$-g-TestKt$compute$1:int=0:int, b:java.lang.String="b":java.lang.String
// test.kt:19 compute:
// test.kt:25 box:
// test.kt:26 box: result:java.lang.String="b":java.lang.String
// test.kt:27 box: result:java.lang.String="b":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS
// test.kt:28 box:
// test.kt:13 compute:
// test.kt:14 compute:
// test.kt:15 compute: a:java.lang.String="a":java.lang.String
// test.kt:7 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int
// test.kt:16 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, $i$a$-g-TestKt$compute$1:int=0:int
// test.kt:17 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int, $i$a$-g-TestKt$compute$1:int=0:int, b:java.lang.String="b":java.lang.String
// test.kt:22 compute:
// test.kt:28 box:
// test.kt:29 box: result:java.lang.String="b":java.lang.String
// test.kt:30 box: result:java.lang.String="b":java.lang.String, localX:java.lang.String="OK":java.lang.String
+22 -22
View File
@@ -1,3 +1,6 @@
// JVM backend has `a` visible in the `compute` finally block. It shouldn't be.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
inline fun h(block: () -> Unit) {
@@ -40,25 +43,22 @@ fun box() {
val localX = x
}
// JVM backend has `a` visible in the `compute` finally block. It shouldn't be.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:39 box:
// test.kt:24 compute:
// test.kt:25 compute:
// test.kt:26 compute: a:java.lang.String="a":java.lang.String
// test.kt:13 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int
// test.kt:14 compute: a:java.lang.String="a":java.lang.String, $i$f$g:int=0:int
// test.kt:15 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:4 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:5 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:6 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:27 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:28 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:8 compute: a:java.lang.String="a":java.lang.String
// test.kt:17 compute: a:java.lang.String="a":java.lang.String
// test.kt:33 compute:
// test.kt:39 box:
// test.kt:40 box: result:java.lang.String="b":java.lang.String
// test.kt:41 box: result:java.lang.String="b":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS
// 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: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
+19 -19
View File
@@ -1,3 +1,6 @@
// The old backend has `y` and `j` visible on the finally block.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
inline fun f(block: () -> Unit) {
@@ -30,22 +33,19 @@ fun box() {
val localX = x
}
// The old backend has `y` and `j` visible on the finally block.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:29 box:
// test.kt:10 compute:
// test.kt:11 compute:
// test.kt:12 compute: y:int=42:int
// test.kt:13 compute: y:int=42:int, i:int=0:int
// test.kt:15 compute:
// test.kt:16 compute: e:java.lang.Exception=java.lang.RuntimeException
// test.kt:17 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int
// test.kt:18 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int
// test.kt:4 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int, $i$f$f:int=0:int
// test.kt:19 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int, $i$f$f:int=0:int, $i$a$-f-TestKt$compute$1:int=0:int
// test.kt:23 compute:
// test.kt:29 box:
// test.kt:30 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:31 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS
// test.kt:32 box:
// test.kt:13 compute:
// test.kt:14 compute:
// test.kt:15 compute: y:int=42:int
// test.kt:16 compute: y:int=42:int, i:int=0:int
// test.kt:18 compute:
// test.kt:19 compute: e:java.lang.Exception=java.lang.RuntimeException
// test.kt:20 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int
// test.kt:21 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int
// test.kt:7 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int, $i$f$f:int=0:int
// test.kt:22 compute: e:java.lang.Exception=java.lang.RuntimeException, y:int=32:int, j:int=0:int, $i$f$f:int=0:int, $i$a$-f-TestKt$compute$1:int=0:int
// test.kt:26 compute:
// test.kt:32 box:
// test.kt:33 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:34 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
+20 -20
View File
@@ -1,3 +1,6 @@
// The old backend has `y` and `i` visible on the finally block.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
inline fun f(block: () -> Unit) {
@@ -32,23 +35,20 @@ fun box() {
val localX = x
}
// The old backend has `y` and `i` visible on the finally block.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:31 box:
// test.kt:17 compute:
// test.kt:18 compute:
// test.kt:19 compute: y:int=42:int
// test.kt:20 compute: y:int=42:int, i:int=0:int
// test.kt:4 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:5 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:6 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, z$iv:int=32:int
// test.kt:7 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, z$iv:int=32:int, j$iv:int=0:int
// test.kt:9 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:10 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, e$iv:java.lang.Exception=java.lang.RuntimeException
// test.kt:21 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, e$iv:java.lang.Exception=java.lang.RuntimeException, $i$a$-f-TestKt$compute$1:int=0:int
// test.kt:25 compute:
// test.kt:31 box:
// test.kt:32 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:33 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS
// test.kt:34 box:
// test.kt:20 compute:
// test.kt:21 compute:
// test.kt:22 compute: y:int=42:int
// test.kt:23 compute: y:int=42:int, i:int=0:int
// test.kt:7 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:8 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:9 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, z$iv:int=32:int
// test.kt:10 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, z$iv:int=32:int, j$iv:int=0:int
// test.kt:12 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int
// test.kt:13 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, e$iv:java.lang.Exception=java.lang.RuntimeException
// test.kt:24 compute: y:int=42:int, i:int=0:int, $i$f$f:int=0:int, e$iv:java.lang.Exception=java.lang.RuntimeException, $i$a$-f-TestKt$compute$1:int=0:int
// test.kt:28 compute:
// test.kt:34 box:
// test.kt:35 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:36 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
+23 -23
View File
@@ -1,3 +1,6 @@
// The local variables in the try and finally blocks are not removed for the finally block with the old backend.
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// FILE: test.kt
inline fun f(block: () -> Unit) {
@@ -35,26 +38,23 @@ fun box() {
val localX = x
}
// The local variables in the try and finally blocks are not removed for the finally block with the old backend.
// IGNORE_BACKEND: JVM
// LOCAL VARIABLES
// test.kt:34 box:
// test.kt:10 compute:
// test.kt:11 compute:
// test.kt:12 compute:
// test.kt:13 compute: y:int=42:int
// test.kt:14 compute: y:int=42:int, i:int=0:int
// test.kt:17 compute:
// test.kt:18 compute: s:java.lang.String="NOPE":java.lang.String
// test.kt:19 compute: s:java.lang.String="NOPE":java.lang.String
// test.kt:4 compute: s:java.lang.String="NOPE":java.lang.String, $i$f$f:int=0:int
// test.kt:20 compute: s:java.lang.String="NOPE":java.lang.String, $i$f$f:int=0:int, $i$a$-f-TestKt$compute$1:int=0:int
// test.kt:24 compute:
// test.kt:25 compute: s2:java.lang.String="NOPE":java.lang.String
// test.kt:26 compute: s2:java.lang.String="NOPE":java.lang.String, j:int=0:int
// test.kt:25 compute: s2:java.lang.String="OK":java.lang.String, j:int=0:int
// test.kt:28 compute: s2:java.lang.String="OK":java.lang.String
// test.kt:34 box:
// test.kt:35 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:36 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
// EXPECTATIONS
// test.kt:37 box:
// test.kt:13 compute:
// test.kt:14 compute:
// test.kt:15 compute:
// test.kt:16 compute: y:int=42:int
// test.kt:17 compute: y:int=42:int, i:int=0:int
// test.kt:20 compute:
// test.kt:21 compute: s:java.lang.String="NOPE":java.lang.String
// test.kt:22 compute: s:java.lang.String="NOPE":java.lang.String
// test.kt:7 compute: s:java.lang.String="NOPE":java.lang.String, $i$f$f:int=0:int
// test.kt:23 compute: s:java.lang.String="NOPE":java.lang.String, $i$f$f:int=0:int, $i$a$-f-TestKt$compute$1:int=0:int
// test.kt:27 compute:
// test.kt:28 compute: s2:java.lang.String="NOPE":java.lang.String
// test.kt:29 compute: s2:java.lang.String="NOPE":java.lang.String, j:int=0:int
// test.kt:28 compute: s2:java.lang.String="OK":java.lang.String, j:int=0:int
// test.kt:31 compute: s2:java.lang.String="OK":java.lang.String
// test.kt:37 box:
// test.kt:38 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String
// test.kt:39 box: result:java.lang.String="NON_LOCAL_RETURN":java.lang.String, localX:java.lang.String="OK":java.lang.String
+28 -20
View File
@@ -1,4 +1,5 @@
//FILE: test.kt
// FILE: test.kt
data class A(val x: Double = 1.0, val y: String = "", val z: Char = '0')
@@ -21,22 +22,29 @@ fun box() {
""
}
}
// IGNORE_BACKEND: JVM_IR
// LOCAL VARIABLES
// test.kt:11 box:
// test.kt:3 <init>: x:double=1.0:double, y:java.lang.String="":java.lang.String, z:char=0:char
// test.kt:11 box:
// test.kt:5 foo: a:A=A, block:kotlin.jvm.functions.Function3=TestKt$box$1
// test.kt:14 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int
// test.kt:3 <init>: x:double=1.0:double, y:java.lang.String="":java.lang.String, z:char=0:char
// test.kt:14 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char
// test.kt:15 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char
// test.kt:3 <init>: x:double=1.0:double, y:java.lang.String="":java.lang.String, z:char=0:char
// test.kt:15 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char
// test.kt:17 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char, _:java.lang.String="":java.lang.String, d:char=0:char
// test.kt:7 getArrayOfA:
// test.kt:17 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char, _:java.lang.String="":java.lang.String, d:char=0:char
// test.kt:21 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char, _:java.lang.String="":java.lang.String, d:char=0:char
// test.kt:5 foo: a:A=A, block:kotlin.jvm.functions.Function3=TestKt$box$1
// test.kt:11 box:
// test.kt:23 box:
// EXPECTATIONS
// test.kt:12 box:
// test.kt:4 <init>: x:double=1.0:double, y:java.lang.String="":java.lang.String, z:char=0:char
// test.kt:12 box:
// test.kt:6 foo: a:A=A, block:kotlin.jvm.functions.Function3=TestKt$box$1
// EXPECTATIONS JVM_IR
// test.kt:13 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int
// test.kt:15 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char
// EXPECTATIONS JVM
// test.kt:15 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int
// EXPECTATIONS
// test.kt:4 <init>: x:double=1.0:double, y:java.lang.String="":java.lang.String, z:char=0:char
// test.kt:15 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char
// test.kt:16 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char
// test.kt:4 <init>: x:double=1.0:double, y:java.lang.String="":java.lang.String, z:char=0:char
// test.kt:16 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char
// test.kt:18 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char, _:java.lang.String="":java.lang.String, d:char=0:char
// test.kt:8 getArrayOfA:
// test.kt:18 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char, _:java.lang.String="":java.lang.String, d:char=0:char
// test.kt:22 invoke: $dstr$x$_u24__u24$y:A=A, $noName_1:java.lang.String="":java.lang.String, w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char, _:java.lang.String="":java.lang.String, d:char=0:char
// test.kt:6 foo: a:A=A, block:kotlin.jvm.functions.Function3=TestKt$box$1
// test.kt:12 box:
// test.kt:24 box: