Do not put $completion to LVT if is dead
This commit is contained in:
+1
-2
@@ -1177,8 +1177,7 @@ private fun updateLvtAccordingToLiveness(method: MethodNode, isForNamedFunction:
|
|||||||
for (variable in oldLvt) {
|
for (variable in oldLvt) {
|
||||||
// $completion, $continuation and $result are dead, but they are used by debugger, as well as fake inliner variables
|
// $completion, $continuation and $result are dead, but they are used by debugger, as well as fake inliner variables
|
||||||
// For example, $continuation is used to create async stack trace
|
// For example, $continuation is used to create async stack trace
|
||||||
if (variable.name == SUSPEND_FUNCTION_COMPLETION_PARAMETER_NAME ||
|
if (variable.name == CONTINUATION_VARIABLE_NAME ||
|
||||||
variable.name == CONTINUATION_VARIABLE_NAME ||
|
|
||||||
variable.name == SUSPEND_CALL_RESULT_NAME ||
|
variable.name == SUSPEND_CALL_RESULT_NAME ||
|
||||||
isFakeLocalVariableForInline(variable.name)
|
isFakeLocalVariableForInline(variable.name)
|
||||||
) {
|
) {
|
||||||
|
|||||||
Vendored
-1
@@ -12,6 +12,5 @@ class A {
|
|||||||
// METHOD : A.foo1(JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
// METHOD : A.foo1(JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
||||||
// VARIABLE : NAME=l TYPE=J INDEX=1
|
// VARIABLE : NAME=l TYPE=J INDEX=1
|
||||||
// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=3
|
|
||||||
// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=7
|
// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=7
|
||||||
// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=6
|
// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=6
|
||||||
Vendored
-1
@@ -9,6 +9,5 @@ suspend fun foo1(l: Long) {
|
|||||||
|
|
||||||
// METHOD : StaticStateMachineKt.foo1(JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
// METHOD : StaticStateMachineKt.foo1(JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
// VARIABLE : NAME=l TYPE=J INDEX=0
|
// VARIABLE : NAME=l TYPE=J INDEX=0
|
||||||
// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=2
|
|
||||||
// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=6
|
// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=6
|
||||||
// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=5
|
// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=5
|
||||||
compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt
Vendored
-1
@@ -12,6 +12,5 @@ suspend fun A.foo1(l: Long) {
|
|||||||
// METHOD : StaticStateMachineReceiverKt.foo1(LA;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
// METHOD : StaticStateMachineReceiverKt.foo1(LA;JLkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||||
// VARIABLE : NAME=$this$foo1 TYPE=LA; INDEX=0
|
// VARIABLE : NAME=$this$foo1 TYPE=LA; INDEX=0
|
||||||
// VARIABLE : NAME=l TYPE=J INDEX=1
|
// VARIABLE : NAME=l TYPE=J INDEX=1
|
||||||
// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=3
|
|
||||||
// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=7
|
// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=7
|
||||||
// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=6
|
// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=6
|
||||||
Reference in New Issue
Block a user