diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.java index fab25972b5b..7eb5865dd7a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.java @@ -354,7 +354,8 @@ public class MethodInliner { ) { if (isInliningLambda || InlineCodegenUtil.GENERATE_SMAP) { String varSuffix = inliningContext.isRoot() && !InlineCodegenUtil.isFakeLocalVariableForInline(name) ? INLINE_FUN_VAR_SUFFIX : ""; - super.visitLocalVariable(name + varSuffix, desc, signature, start, end, getNewIndex(index)); + String varName = !varSuffix.isEmpty() && name.equals("this") ? name + "_" : name; + super.visitLocalVariable(varName + varSuffix, desc, signature, start, end, getNewIndex(index)); } } }; diff --git a/compiler/testData/checkLocalVariablesTable/inlineLambdaWithItParam.kt b/compiler/testData/checkLocalVariablesTable/inlineLambdaWithItParam.kt index dcabfd0ea61..18c16b8fc31 100644 --- a/compiler/testData/checkLocalVariablesTable/inlineLambdaWithItParam.kt +++ b/compiler/testData/checkLocalVariablesTable/inlineLambdaWithItParam.kt @@ -15,6 +15,6 @@ class A { // VARIABLE : NAME=zzz TYPE=I INDEX=3 // VARIABLE : NAME=it TYPE=I INDEX=2 // VARIABLE : NAME=$i$a$1 TYPE=I INDEX=4 -// VARIABLE : NAME=this$iv TYPE=LA; INDEX=1 +// VARIABLE : NAME=this_$iv TYPE=LA; INDEX=1 // VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=5 // VARIABLE : NAME=this TYPE=LA; INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/inlineLambdaWithParam.kt b/compiler/testData/checkLocalVariablesTable/inlineLambdaWithParam.kt index a0d02be5dbe..089a9ed0944 100644 --- a/compiler/testData/checkLocalVariablesTable/inlineLambdaWithParam.kt +++ b/compiler/testData/checkLocalVariablesTable/inlineLambdaWithParam.kt @@ -20,7 +20,7 @@ class A { // VARIABLE : NAME=zzz TYPE=I INDEX=4 // VARIABLE : NAME=l TYPE=I INDEX=3 // VARIABLE : NAME=$i$a$1 TYPE=I INDEX=5 -// VARIABLE : NAME=this$iv TYPE=LA; INDEX=1 +// VARIABLE : NAME=this_$iv TYPE=LA; INDEX=1 // VARIABLE : NAME=p$iv TYPE=I INDEX=2 // VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=6 // VARIABLE : NAME=this TYPE=LA; INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/inlineSimple.kt b/compiler/testData/checkLocalVariablesTable/inlineSimple.kt index 2fbb462d7f3..9e2e33d55c8 100644 --- a/compiler/testData/checkLocalVariablesTable/inlineSimple.kt +++ b/compiler/testData/checkLocalVariablesTable/inlineSimple.kt @@ -15,7 +15,7 @@ class A { // METHOD : A.foo()V // VARIABLE : NAME=zzz TYPE=I INDEX=3 // VARIABLE : NAME=$i$a$1 TYPE=I INDEX=4 -// VARIABLE : NAME=this$iv TYPE=LA; INDEX=2 +// VARIABLE : NAME=this_$iv TYPE=LA; INDEX=2 // VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=5 // VARIABLE : NAME=s TYPE=I INDEX=1 // VARIABLE : NAME=this TYPE=LA; INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/inlineSimpleChain.kt b/compiler/testData/checkLocalVariablesTable/inlineSimpleChain.kt index 04cdae0861b..ef8f7ab8d88 100644 --- a/compiler/testData/checkLocalVariablesTable/inlineSimpleChain.kt +++ b/compiler/testData/checkLocalVariablesTable/inlineSimpleChain.kt @@ -20,11 +20,11 @@ class A { // METHOD : A.foo()V // VARIABLE : NAME=zz2 TYPE=I INDEX=5 // VARIABLE : NAME=$i$a$1 TYPE=I INDEX=6 -// VARIABLE : NAME=this$iv TYPE=LA; INDEX=4 +// VARIABLE : NAME=this_$iv TYPE=LA; INDEX=4 // VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=7 // VARIABLE : NAME=z TYPE=I INDEX=3 // VARIABLE : NAME=$i$a$1 TYPE=I INDEX=8 -// VARIABLE : NAME=this$iv TYPE=LA; INDEX=2 +// VARIABLE : NAME=this_$iv TYPE=LA; INDEX=2 // VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=9 // VARIABLE : NAME=s TYPE=I INDEX=1 // VARIABLE : NAME=this TYPE=LA; INDEX=0