From e8e8a26cd146109482c0de307b1830358b562a70 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Mon, 24 Jul 2023 15:28:37 +0200 Subject: [PATCH] [Wasm] Fixed invalid delegated property getters lowering #Fixed KT-58941 --- .../backend/wasm/lower/WasmPropertyReferenceLowering.kt | 8 ++++---- .../delegatedProperty/delegateForExtPropertyInClass.kt | 1 - .../optimizedDelegatedProperties/mixedArgumentSizes.kt | 1 - .../delegatedProperty/provideDelegate/memberExtension.kt | 1 - .../deepGenericDelegatedProperty.kt | 1 - 5 files changed, 4 insertions(+), 8 deletions(-) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmPropertyReferenceLowering.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmPropertyReferenceLowering.kt index 17b3d1b2696..1fae1aa4aa2 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmPropertyReferenceLowering.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmPropertyReferenceLowering.kt @@ -204,14 +204,14 @@ internal class WasmPropertyReferenceLowering(val context: WasmBackendContext) : val returnType = expression.getter?.owner?.returnType ?: expression.field!!.owner.type val getterCallableReference = expression.getter?.owner?.let { getter -> - getter.extensionReceiverParameter.let { - if (it != null && expression.extensionReceiver == null) - receiverTypes.add(it.type) - } getter.dispatchReceiverParameter.let { if (it != null && expression.dispatchReceiver == null) receiverTypes.add(it.type) } + getter.extensionReceiverParameter.let { + if (it != null && expression.extensionReceiver == null) + receiverTypes.add(it.type) + } val getterKFunctionType = this@WasmPropertyReferenceLowering.context.irBuiltIns.getKFunctionType( returnType, receiverTypes diff --git a/compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt b/compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt index 11938af1579..7cdaca652eb 100644 --- a/compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt +++ b/compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: WASM import kotlin.reflect.KProperty class Delegate { diff --git a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/mixedArgumentSizes.kt b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/mixedArgumentSizes.kt index 80d49ca6677..23be2f3d0c8 100644 --- a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/mixedArgumentSizes.kt +++ b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/mixedArgumentSizes.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: WASM inline operator fun Double.provideDelegate(thisRef: Any?, kProp: Any?) = this.toLong() inline operator fun Long.getValue(thisRef: Any?, kProp: Any?) = this.toInt() diff --git a/compiler/testData/codegen/box/delegatedProperty/provideDelegate/memberExtension.kt b/compiler/testData/codegen/box/delegatedProperty/provideDelegate/memberExtension.kt index 4da6092641c..45ef705afe6 100644 --- a/compiler/testData/codegen/box/delegatedProperty/provideDelegate/memberExtension.kt +++ b/compiler/testData/codegen/box/delegatedProperty/provideDelegate/memberExtension.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: WASM // WITH_STDLIB object Host { diff --git a/compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.kt b/compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.kt index c813906d14a..4138991bd02 100644 --- a/compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.kt +++ b/compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.kt @@ -1,5 +1,4 @@ // !LANGUAGE: -ForbidUsingExtensionPropertyTypeParameterInDelegate -// IGNORE_BACKEND: WASM // SKIP_MANGLE_VERIFICATION //For KT-6020 // KT-24643: language version in K2 is >= 1.8