diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/lower/LocalFunctionsLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/lower/LocalFunctionsLowering.kt index 3d934a0a796..843d0dd3fd2 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/lower/LocalFunctionsLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/lower/LocalFunctionsLowering.kt @@ -57,7 +57,7 @@ class LocalFunctionsLowering(val context: BackendContext): DeclarationContainerL lateinit var transformedDescriptor: FunctionDescriptor - val old2new: MutableMap = HashMap() + val old2new: MutableMap = HashMap() var index: Int = -1 @@ -67,7 +67,7 @@ class LocalFunctionsLowering(val context: BackendContext): DeclarationContainerL private inner class LocalFunctionsTransformer(val memberFunction: IrFunction) { val localFunctions: MutableMap = LinkedHashMap() - val new2old: MutableMap = HashMap() + val new2old: MutableMap = HashMap() fun lowerLocalFunctions(): List? { collectLocalFunctions() @@ -285,10 +285,14 @@ class LocalFunctionsLowering(val context: BackendContext): DeclarationContainerL Visibilities.PRIVATE ) + oldDescriptor.extensionReceiverParameter?.let { + localFunctionContext.recordRemapped(it, newDescriptor.extensionReceiverParameter!!) + } + return newDescriptor } - private fun LocalFunctionContext.recordRemapped(oldDescriptor: ValueDescriptor, newDescriptor: ValueParameterDescriptor): ValueParameterDescriptor { + private fun LocalFunctionContext.recordRemapped(oldDescriptor: ValueDescriptor, newDescriptor: ValueDescriptor): ValueDescriptor { old2new[oldDescriptor] = newDescriptor new2old[newDescriptor] = oldDescriptor return newDescriptor