Rename local variable for this in inline function
This commit is contained in:
@@ -354,7 +354,8 @@ public class MethodInliner {
|
|||||||
) {
|
) {
|
||||||
if (isInliningLambda || InlineCodegenUtil.GENERATE_SMAP) {
|
if (isInliningLambda || InlineCodegenUtil.GENERATE_SMAP) {
|
||||||
String varSuffix = inliningContext.isRoot() && !InlineCodegenUtil.isFakeLocalVariableForInline(name) ? INLINE_FUN_VAR_SUFFIX : "";
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,6 +15,6 @@ class A {
|
|||||||
// VARIABLE : NAME=zzz TYPE=I INDEX=3
|
// VARIABLE : NAME=zzz TYPE=I INDEX=3
|
||||||
// VARIABLE : NAME=it TYPE=I INDEX=2
|
// VARIABLE : NAME=it TYPE=I INDEX=2
|
||||||
// VARIABLE : NAME=$i$a$1 TYPE=I INDEX=4
|
// 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=$i$f$inlineFun TYPE=I INDEX=5
|
||||||
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class A {
|
|||||||
// VARIABLE : NAME=zzz TYPE=I INDEX=4
|
// VARIABLE : NAME=zzz TYPE=I INDEX=4
|
||||||
// VARIABLE : NAME=l TYPE=I INDEX=3
|
// VARIABLE : NAME=l TYPE=I INDEX=3
|
||||||
// VARIABLE : NAME=$i$a$1 TYPE=I INDEX=5
|
// 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=p$iv TYPE=I INDEX=2
|
||||||
// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=6
|
// VARIABLE : NAME=$i$f$inlineFun TYPE=I INDEX=6
|
||||||
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ class A {
|
|||||||
// METHOD : A.foo()V
|
// METHOD : A.foo()V
|
||||||
// VARIABLE : NAME=zzz TYPE=I INDEX=3
|
// VARIABLE : NAME=zzz TYPE=I INDEX=3
|
||||||
// VARIABLE : NAME=$i$a$1 TYPE=I INDEX=4
|
// 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=$i$f$inlineFun TYPE=I INDEX=5
|
||||||
// VARIABLE : NAME=s TYPE=I INDEX=1
|
// VARIABLE : NAME=s TYPE=I INDEX=1
|
||||||
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ class A {
|
|||||||
// METHOD : A.foo()V
|
// METHOD : A.foo()V
|
||||||
// VARIABLE : NAME=zz2 TYPE=I INDEX=5
|
// VARIABLE : NAME=zz2 TYPE=I INDEX=5
|
||||||
// VARIABLE : NAME=$i$a$1 TYPE=I INDEX=6
|
// 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=$i$f$inlineFun TYPE=I INDEX=7
|
||||||
// VARIABLE : NAME=z TYPE=I INDEX=3
|
// VARIABLE : NAME=z TYPE=I INDEX=3
|
||||||
// VARIABLE : NAME=$i$a$1 TYPE=I INDEX=8
|
// 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=$i$f$inlineFun TYPE=I INDEX=9
|
||||||
// VARIABLE : NAME=s TYPE=I INDEX=1
|
// VARIABLE : NAME=s TYPE=I INDEX=1
|
||||||
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
// VARIABLE : NAME=this TYPE=LA; INDEX=0
|
||||||
|
|||||||
Reference in New Issue
Block a user