From b3be835c6f092ee43345bdf5ce31c3430d7b9ade Mon Sep 17 00:00:00 2001 From: Pavel Kunyavskiy Date: Tue, 7 Dec 2021 12:35:03 +0300 Subject: [PATCH] [K/N] Fix bug for function references with extension receiver Was introduced while refactoring in 4b49356a --- .../kotlin/backend/konan/lower/FunctionReferenceLowering.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionReferenceLowering.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionReferenceLowering.kt index a2c2934b7e7..f9539c157f7 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionReferenceLowering.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionReferenceLowering.kt @@ -321,8 +321,10 @@ internal class FunctionReferenceLowering(val context: Context): FileLoweringPass addOverride("computeFqName") { irString(functionReferenceTarget.computeFullName()) } - functionReference.symbol.owner.dispatchReceiverParameter - ?.takeIf { it in boundFunctionParameters } + listOfNotNull( + functionReference.symbol.owner.dispatchReceiverParameter, + functionReference.symbol.owner.extensionReceiverParameter + ).singleOrNull { it in boundFunctionParameters } ?.let { receiver -> addOverrideInner("computeReceiver") { f -> irGetField(irGet(f.dispatchReceiverParameter!!), argumentToPropertiesMap[receiver]!!)