[JVM IR] Do not put destructuring params or underscores in LVT.
Putting them in the local variable table means that the debugger needs to have special handling for parameters with specific names. That forces us to generate mangled names for these. Instead of also implementing the name mangling for FIR, this change gets rid of the parameters from the LVT instead.
This commit is contained in:
@@ -13,7 +13,13 @@ fun box() {
|
||||
// test.kt:3 <init>: x:java.lang.String="O":java.lang.String, y:int=123:int
|
||||
// test.kt:8 box:
|
||||
// test.kt:5 foo: a:A=A, block:kotlin.jvm.functions.Function1=TestKt$box$1
|
||||
|
||||
// EXPECTATIONS JVM
|
||||
// test.kt:8 invoke: $dstr$x$y:A=A
|
||||
// EXPECTATIONS JVM_IR
|
||||
// test.kt:8 invoke:
|
||||
|
||||
// EXPECTATIONS
|
||||
// test.kt:5 foo: a:A=A, block:kotlin.jvm.functions.Function1=TestKt$box$1
|
||||
// test.kt:8 box:
|
||||
// test.kt:9 box:
|
||||
// test.kt:9 box:
|
||||
|
||||
@@ -19,15 +19,20 @@ suspend fun box() = foo(A()) { (x_param, _, y_param) ->
|
||||
// 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:
|
||||
|
||||
// EXPECTATIONS JVM
|
||||
// test.kt:12 invokeSuspend: $result:java.lang.Object=kotlin.Unit, $dstr$x_param$_u24__u24$y_param:A=A
|
||||
// EXPECTATIONS JVM_IR
|
||||
// test.kt:12 invokeSuspend: $result:java.lang.Object=kotlin.Unit
|
||||
|
||||
// EXPECTATIONS
|
||||
// test.kt:7 component3:
|
||||
|
||||
// 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
|
||||
// test.kt:12 invokeSuspend: $result:java.lang.Object=kotlin.Unit, x_param:java.lang.String="O":java.lang.String
|
||||
// test.kt:13 invokeSuspend: $result:java.lang.Object=kotlin.Unit, x_param:java.lang.String="O":java.lang.String, y_param:java.lang.String="K":java.lang.String
|
||||
// EXPECTATIONS JVM
|
||||
// test.kt:12 invokeSuspend: $result:java.lang.Object=kotlin.Unit, $dstr$x_param$_u24__u24$y_param:A=A
|
||||
|
||||
// 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
|
||||
|
||||
// EXPECTATIONS JVM_IR
|
||||
|
||||
+23
-2
@@ -30,21 +30,42 @@ fun 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
|
||||
// test.kt:13 invoke: w:int=1:int
|
||||
// test.kt:15 invoke: 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
|
||||
|
||||
// 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, 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
|
||||
// EXPECTATIONS JVM_IR
|
||||
// test.kt:15 invoke: w:int=1:int, x:double=1.0:double, y:char=0:char
|
||||
// test.kt:16 invoke: w:int=1:int, x:double=1.0:double, y:char=0:char, a:double=1.0:double, c:char=0:char
|
||||
|
||||
// EXPECTATIONS
|
||||
// test.kt:4 <init>: x:double=1.0:double, y:java.lang.String="":java.lang.String, z:char=0:char
|
||||
|
||||
// EXPECTATIONS JVM
|
||||
// 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
|
||||
// EXPECTATIONS JVM_IR
|
||||
// test.kt:16 invoke: 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: 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
|
||||
|
||||
// EXPECTATIONS
|
||||
// test.kt:8 getArrayOfA:
|
||||
|
||||
// EXPECTATIONS JVM
|
||||
// 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
|
||||
// EXPECTATIONS JVM_IR
|
||||
// test.kt:18 invoke: 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: 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
|
||||
|
||||
// EXPECTATIONS
|
||||
// test.kt:6 foo: a:A=A, block:kotlin.jvm.functions.Function3=TestKt$box$1
|
||||
// test.kt:12 box:
|
||||
// test.kt:24 box:
|
||||
|
||||
Reference in New Issue
Block a user