Rename local vars from inlined function

#KT-9798 Fixed
This commit is contained in:
Michael Bogdanov
2015-11-27 16:01:47 +03:00
committed by Natalia Ukhorskaya
parent 5073b1d372
commit a932315bf9
7 changed files with 10 additions and 4 deletions
@@ -75,6 +75,7 @@ public class InlineCodegenUtil {
public static final String INLINE_MARKER_FINALLY_END = "finallyEnd";
public static final String INLINE_TRANSFORMATION_SUFFIX = "$inlined";
public static final String INLINE_FUN_THIS_0_SUFFIX = "$inline_fun";
public static final String INLINE_FUN_VAR_SUFFIX = "$iv";
@Nullable
public static SMAPAndMethodNode getMethodNode(
@@ -353,7 +353,8 @@ public class MethodInliner {
@NotNull String name, @NotNull String desc, String signature, @NotNull Label start, @NotNull Label end, int index
) {
if (isInliningLambda || InlineCodegenUtil.GENERATE_SMAP) {
super.visitLocalVariable(name, desc, signature, start, end, getNewIndex(index));
String varSuffix = inliningContext.isRoot() && !InlineCodegenUtil.isFakeLocalVariableForInline(name) ? INLINE_FUN_VAR_SUFFIX : "";
super.visitLocalVariable(name + varSuffix, desc, signature, start, end, getNewIndex(index));
}
}
};