diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/DeepCopyIrTreeWithDescriptors.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/DeepCopyIrTreeWithDescriptors.kt index f661be20651..b16cb15fb1d 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/DeepCopyIrTreeWithDescriptors.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/inline/DeepCopyIrTreeWithDescriptors.kt @@ -12,14 +12,14 @@ import org.jetbrains.kotlin.ir.declarations.copyAttributes import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall import org.jetbrains.kotlin.ir.expressions.impl.IrTypeOperatorCallImpl -import org.jetbrains.kotlin.ir.symbols.* +import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol +import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.impl.IrStarProjectionImpl import org.jetbrains.kotlin.ir.types.impl.buildSimpleType import org.jetbrains.kotlin.ir.types.impl.makeTypeProjection import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.visitors.acceptVoid -import org.jetbrains.kotlin.name.Name internal class DeepCopyIrTreeWithSymbolsForInliner( val typeArguments: Map?, @@ -40,24 +40,6 @@ internal class DeepCopyIrTreeWithSymbolsForInliner( return result } - private var nameIndex = 0 - - private fun generateCopyName(name: Name) = Name.identifier(name.toString() + "_" + (nameIndex++).toString()) - - private inner class InlinerSymbolRenamer : SymbolRenamer { - private val map = mutableMapOf() - - override fun getClassName(symbol: IrClassSymbol) = map.getOrPut(symbol) { generateCopyName(symbol.owner.name) } - override fun getFunctionName(symbol: IrSimpleFunctionSymbol) = map.getOrPut(symbol) { generateCopyName(symbol.owner.name) } - override fun getFieldName(symbol: IrFieldSymbol) = symbol.owner.name - override fun getFileName(symbol: IrFileSymbol) = symbol.owner.fqName - override fun getExternalPackageFragmentName(symbol: IrExternalPackageFragmentSymbol) = symbol.owner.fqName - override fun getEnumEntryName(symbol: IrEnumEntrySymbol) = symbol.owner.name - override fun getVariableName(symbol: IrVariableSymbol) = map.getOrPut(symbol) { generateCopyName(symbol.owner.name) } - override fun getTypeParameterName(symbol: IrTypeParameterSymbol) = symbol.owner.name - override fun getValueParameterName(symbol: IrValueParameterSymbol) = symbol.owner.name - } - private inner class InlinerTypeRemapper( val symbolRemapper: SymbolRemapper, val typeArguments: Map? @@ -157,7 +139,7 @@ internal class DeepCopyIrTreeWithSymbolsForInliner( private val symbolRemapper = SymbolRemapperImpl(NullDescriptorsRemapper) private val typeRemapper = InlinerTypeRemapper(symbolRemapper, typeArguments) - private val copier = object : DeepCopyIrTreeWithSymbols(symbolRemapper, typeRemapper, InlinerSymbolRenamer()) { + private val copier = object : DeepCopyIrTreeWithSymbols(symbolRemapper, typeRemapper) { private fun IrType.remapTypeAndErase() = typeRemapper.remapTypeAndOptionallyErase(this, erase = true) override fun visitTypeOperator(expression: IrTypeOperatorCall) = diff --git a/kotlin-native/backend.native/tests/debugger/src/test/kotlin/org/jetbrains/kotlin/native/test/debugger/DwarfTests.kt b/kotlin-native/backend.native/tests/debugger/src/test/kotlin/org/jetbrains/kotlin/native/test/debugger/DwarfTests.kt index 28e7c52981b..03f409a2e2f 100644 --- a/kotlin-native/backend.native/tests/debugger/src/test/kotlin/org/jetbrains/kotlin/native/test/debugger/DwarfTests.kt +++ b/kotlin-native/backend.native/tests/debugger/src/test/kotlin/org/jetbrains/kotlin/native/test/debugger/DwarfTests.kt @@ -62,7 +62,7 @@ class DwarfTests { } """.trimIndent().binary("poisoned", "-g", "-l", poisonLibrary.toString(), "-l", callbackLibrary.toString(), "-l", trapLibrary.toString()) - binary.dwarfDumpLookup("kfun:main\$_1#internal") { + binary.dwarfDumpLookup("kfun:main\$lambda-0#internal") { assertFalse(this.isEmpty()) val subprogram = single { it.tag == DwarfTag.Tag.DW_TAG_subprogram } as DwarfTagSubprogram assertEquals(subprogram.file!!.name, "poison.kt") diff --git a/kotlin-native/backend.native/tests/debugger/src/test/kotlin/org/jetbrains/kotlin/native/test/debugger/LldbTests.kt b/kotlin-native/backend.native/tests/debugger/src/test/kotlin/org/jetbrains/kotlin/native/test/debugger/LldbTests.kt index 04b353b1707..779257773d7 100644 --- a/kotlin-native/backend.native/tests/debugger/src/test/kotlin/org/jetbrains/kotlin/native/test/debugger/LldbTests.kt +++ b/kotlin-native/backend.native/tests/debugger/src/test/kotlin/org/jetbrains/kotlin/native/test/debugger/LldbTests.kt @@ -258,9 +258,9 @@ class LldbTests { > bt * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 * frame #0: [..] kt42208.kexe`ThrowException - frame #1: [..] kt42208.kexe`kfun:main${'$'}_1#internal at kt42208-2.kt:3:18 - frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 - frame #3: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Nothing#internal at kt42208-1.kt:2:5 + frame #1: [..] kt42208.kexe`kfun:main${'$'}lambda-0#internal at kt42208-2.kt:3:18 + frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 + frame #3: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Nothing#internal at kt42208-1.kt:2:5 frame #4: [..] kt42208.kexe`kfun:#main(){} at kt42208-1.kt:2:5 frame #5: [..] kt42208.kexe`Konan_start(args=[..]) at kt42208-1.kt:1:1 frame #6: [..] @@ -293,26 +293,26 @@ class LldbTests { > ${lldbCommandRunOrContinue()} > bt * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 - * frame #0: [..] kt42208.kexe`kfun:main${'$'}_1#internal at kt42208-2.kt:5:5 - frame #1: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 - frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Boolean#internal at kt42208-1.kt:2:5 + * frame #0: [..] kt42208.kexe`kfun:main${'$'}lambda-0#internal at kt42208-2.kt:5:5 + frame #1: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 + frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Boolean#internal at kt42208-1.kt:2:5 frame #3: [..] kt42208.kexe`kfun:#main(){} at kt42208-1.kt:3:5 frame #4: [..] kt42208.kexe`Konan_start(args=[..]) at kt42208-1.kt:1:1 frame #5: [..] > c > bt * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 - * frame #0: [..] kt42208.kexe`kfun:main${'$'}_1#internal at kt42208-2.kt:5:5 - frame #1: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 - frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Boolean#internal at kt42208-1.kt:2:5 + * frame #0: [..] kt42208.kexe`kfun:main${'$'}lambda-0#internal at kt42208-2.kt:5:5 + frame #1: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 + frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Boolean#internal at kt42208-1.kt:2:5 frame #3: [..] kt42208.kexe`kfun:#main(){} at kt42208-1.kt:4:5 frame #4: [..] kt42208.kexe`Konan_start(args=[..]) at kt42208-1.kt:1:1 > c > bt * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 - * frame #0: [..] kt42208.kexe`kfun:main${'$'}_1#internal at kt42208-2.kt:5:5 - frame #1: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 - frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Boolean#internal at kt42208-1.kt:2:5 + * frame #0: [..] kt42208.kexe`kfun:main${'$'}lambda-0#internal at kt42208-2.kt:5:5 + frame #1: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 + frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Boolean#internal at kt42208-1.kt:2:5 frame #3: [..] kt42208.kexe`kfun:#main(){} at kt42208-1.kt:5:5 frame #4: [..] kt42208.kexe`Konan_start(args=[..]) at kt42208-1.kt:1:1 > q @@ -348,9 +348,9 @@ class LldbTests { > ${lldbCommandRunOrContinue()} > bt * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 - * frame #0: [..] kt42208.kexe`kfun:main${'$'}_1#internal at kt42208-2.kt:5:5 - frame #1: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 - frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}_1${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Boolean#internal at kt42208-1.kt:2:5 + * frame #0: [..] kt42208.kexe`kfun:main${'$'}lambda-0#internal at kt42208-2.kt:5:5 + frame #1: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.invoke#internal(_this=[..]) at kt42208-1.kt:2:5 + frame #2: [..] kt42208.kexe`kfun:${'$'}main${'$'}lambda-0${'$'}FUNCTION_REFERENCE${'$'}0.${'$'}invoke(_this=[..]){}kotlin.Boolean#internal at kt42208-1.kt:2:5 frame #3: [..] kt42208.kexe`kfun:#bar(v=[]){} at kt42208-3.kt:2:4 frame #4: [..] kt42208.kexe`kfun:#main(){} at kt42208-1.kt:3:5 frame #5: [..] kt42208.kexe`Konan_start(args=[]) at kt42208-1.kt:1:1