From 6a23af0f045785e217a32864d35930eb195efae8 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Wed, 12 Apr 2017 15:23:47 +0300 Subject: [PATCH] Update extension receivers on deep IR copy. --- .../backend/common/DeepCopyIrTreeWithDescriptoros.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt index b080bdd62b2..a7ea906f904 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDescriptoros.kt @@ -125,6 +125,9 @@ internal class DeepCopyIrTreeWithDescriptors(val targetDescriptor: DeclarationDe if (oldDescriptor !is PropertyAccessorDescriptor) { // Property accessors are copied along with their property. val newDescriptor = copyFunctionDescriptor(oldDescriptor) descriptorSubstituteMap[oldDescriptor] = newDescriptor + oldDescriptor.extensionReceiverParameter?.let{ + descriptorSubstituteMap[it] = newDescriptor.extensionReceiverParameter!! + } } super.visitFunction(declaration) } @@ -243,6 +246,10 @@ internal class DeepCopyIrTreeWithDescriptors(val targetDescriptor: DeclarationDe oldDescriptor.setter?.let { descriptorSubstituteMap[it] = newDescriptor.setter!! } + oldDescriptor.extensionReceiverParameter?.let{ + descriptorSubstituteMap[it] = newDescriptor.extensionReceiverParameter!! + } + } //---------------------------------------------------------------------//