diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt index 01138bcf583..abf4cab4f4b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt @@ -94,9 +94,13 @@ open class DeepCopyIrTree : IrElementTransformerVoid() { mapClassDeclaration(declaration.descriptor), declaration.declarations.map { it.transform() } ).apply { + thisReceiver = declaration.thisReceiver?.withDescriptor(descriptor.thisAsReceiverParameter) transformTypeParameters(declaration, descriptor.declaredTypeParameters) } + private fun IrValueParameter.withDescriptor(newDescriptor: ParameterDescriptor) = + IrValueParameterImpl(startOffset, endOffset, origin, newDescriptor, defaultValue?.transform()) + override fun visitTypeAlias(declaration: IrTypeAlias): IrTypeAlias = IrTypeAliasImpl( declaration.startOffset, declaration.endOffset, @@ -421,7 +425,7 @@ open class DeepCopyIrTree : IrElementTransformerVoid() { newProperty, newFieldSymbol, newGetterSymbol, newSetterSymbol, expression.transformTypeArguments(newProperty), mapStatementOrigin(expression.origin) - ) + ).transformValueArguments(expression) } override fun visitLocalDelegatedPropertyReference(expression: IrLocalDelegatedPropertyReference): IrExpression { diff --git a/compiler/testData/ir/irText/expressions/extFunInvokeAsFun__.txt b/compiler/testData/ir/irText/expressions/extFunInvokeAsFun__builtinsmodule.txt similarity index 100% rename from compiler/testData/ir/irText/expressions/extFunInvokeAsFun__.txt rename to compiler/testData/ir/irText/expressions/extFunInvokeAsFun__builtinsmodule.txt diff --git a/compiler/testData/ir/irText/stubs/simple__.txt b/compiler/testData/ir/irText/stubs/simple__builtinsmodule.txt similarity index 100% rename from compiler/testData/ir/irText/stubs/simple__.txt rename to compiler/testData/ir/irText/stubs/simple__builtinsmodule.txt diff --git a/compiler/tests/org/jetbrains/kotlin/ir/AbstractIrTextTestCase.kt b/compiler/tests/org/jetbrains/kotlin/ir/AbstractIrTextTestCase.kt index d9b62432989..c6b2a56c91e 100644 --- a/compiler/tests/org/jetbrains/kotlin/ir/AbstractIrTextTestCase.kt +++ b/compiler/tests/org/jetbrains/kotlin/ir/AbstractIrTextTestCase.kt @@ -53,7 +53,8 @@ abstract class AbstractIrTextTestCase : AbstractIrGeneratorTestCase() { private fun doTestIrModuleDependencies(wholeFile: File, irModule: IrModuleFragment) { irModule.dependencyModules.forEach { irDependencyModule -> val actual = irDependencyModule.dump() - val expectedFileName = wholeFile.absolutePath.replace(".kt", "__${irDependencyModule.descriptor.name.asString()}.txt") + val sanitizedModuleName = StringUtil.sanitizeJavaIdentifier(irDependencyModule.descriptor.name.asString()) + val expectedFileName = wholeFile.absolutePath.replace(".kt", "__$sanitizedModuleName.txt") KotlinTestUtils.assertEqualsToFile(File(expectedFileName), actual) } } @@ -83,7 +84,7 @@ abstract class AbstractIrTextTestCase : AbstractIrGeneratorTestCase() { val irFileCopyOld = irFile.deepCopyOld() val copiedTreesOld = irFileCopyOld.dumpTreesFromLineNumber(irTreeFileLabel.lineNumber) - TestCase.assertEquals("IR dump mismatch after old deep copy", actualTrees, copiedTrees) + TestCase.assertEquals("IR dump mismatch after old deep copy", actualTrees, copiedTreesOld) } try {