diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AsmTypeRemapper.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AsmTypeRemapper.kt index fcc60c6dc22..6e8d7277721 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AsmTypeRemapper.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AsmTypeRemapper.kt @@ -17,7 +17,7 @@ package org.jetbrains.kotlin.codegen.inline import org.jetbrains.org.objectweb.asm.commons.Remapper -import org.jetbrains.org.objectweb.asm.commons.RemappingSignatureAdapter +import org.jetbrains.org.objectweb.asm.commons.SignatureRemapper import org.jetbrains.org.objectweb.asm.signature.SignatureReader import org.jetbrains.org.objectweb.asm.signature.SignatureVisitor @@ -26,8 +26,8 @@ class AsmTypeRemapper(val typeRemapper: TypeRemapper, val result: InlineResult) return typeRemapper.map(type) } - override fun createRemappingSignatureAdapter(v: SignatureVisitor?): SignatureVisitor { - return object : RemappingSignatureAdapter(v, this) { + override fun createSignatureRemapper(v: SignatureVisitor?): SignatureVisitor { + return object : SignatureRemapper(v, this) { override fun visitTypeVariable(name: String) { /*TODO try to erase absent type variable*/ val mapping = typeRemapper.mapTypeParameter(name) ?: return super.visitTypeVariable(name) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt index 3da161584c0..990600e81fd 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt @@ -36,7 +36,8 @@ import org.jetbrains.org.objectweb.asm.MethodVisitor import org.jetbrains.org.objectweb.asm.Opcodes import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter -import org.jetbrains.org.objectweb.asm.commons.RemappingMethodAdapter +import org.jetbrains.org.objectweb.asm.commons.LocalVariablesSorter +import org.jetbrains.org.objectweb.asm.commons.MethodRemapper import org.jetbrains.org.objectweb.asm.tree.* import org.jetbrains.org.objectweb.asm.tree.analysis.* import org.jetbrains.org.objectweb.asm.util.Printer @@ -147,11 +148,15 @@ class MethodInliner( val iterator = transformations.iterator() val remapper = TypeRemapper.createFrom(currentTypeMapping) - val remappingMethodAdapter = RemappingMethodAdapter( + + // MethodRemapper doesn't extends LocalVariablesSorter, but RemappingMethodAdapter does. + // So wrapping with LocalVariablesSorter to keep old behavior + val remappingMethodAdapter = MethodRemapper( + LocalVariablesSorter( resultNode.access, resultNode.desc, - resultNode, - AsmTypeRemapper(remapper, result) + resultNode + ), AsmTypeRemapper(remapper, result) ) val markerShift = calcMarkerShift(parameters, node)