From 565a35c92798ee8fcf0e0678ddce307d4c2ee4cf Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Tue, 6 Aug 2024 11:29:31 +0300 Subject: [PATCH] [FIR2IR] Unset `isLateinit` flag for properties implemented by delegation ^KT-70417 Fixed --- .../kotlin/fir/backend/Fir2IrFakeOverrideStrategy.kt | 1 + .../hiddenDelegateAndLateinitVar.jvm_abi.txt | 9 +++++++++ .../box/classDelegation/hiddenDelegateAndLateinitVar.kt | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/codegen/box/classDelegation/hiddenDelegateAndLateinitVar.jvm_abi.txt diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/backend/Fir2IrFakeOverrideStrategy.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/backend/Fir2IrFakeOverrideStrategy.kt index 7a8c1dc35c7f3..2be7c5cde5c15 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/backend/Fir2IrFakeOverrideStrategy.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/backend/Fir2IrFakeOverrideStrategy.kt @@ -164,6 +164,7 @@ class Fir2IrDelegatedMembersGenerationStrategy( overridableMember.updateDeclarationHeader() overridableMember.getter?.updateDeclarationHeader() overridableMember.setter?.updateDeclarationHeader() + overridableMember.isLateinit = false } } diff --git a/compiler/testData/codegen/box/classDelegation/hiddenDelegateAndLateinitVar.jvm_abi.txt b/compiler/testData/codegen/box/classDelegation/hiddenDelegateAndLateinitVar.jvm_abi.txt new file mode 100644 index 0000000000000..fa7bf64ddad1b --- /dev/null +++ b/compiler/testData/codegen/box/classDelegation/hiddenDelegateAndLateinitVar.jvm_abi.txt @@ -0,0 +1,9 @@ +MODULE main + CLASS D.class + CLASS METADATA + PROPERTY getX()Ljava/lang/String; + Property: class.metadata.property.setterValueParameter + K1 + : kotlin/String + K2 + _: kotlin/String diff --git a/compiler/testData/codegen/box/classDelegation/hiddenDelegateAndLateinitVar.kt b/compiler/testData/codegen/box/classDelegation/hiddenDelegateAndLateinitVar.kt index 0c5e32ec57413..4760e3414e5cf 100644 --- a/compiler/testData/codegen/box/classDelegation/hiddenDelegateAndLateinitVar.kt +++ b/compiler/testData/codegen/box/classDelegation/hiddenDelegateAndLateinitVar.kt @@ -1,5 +1,5 @@ -// IGNORE_BACKEND_K2: JVM_IR // ISSUE: KT-70417 +// JVM_ABI_K1_K2_DIFF: difference in name of anonymous parameter `_` of setter interface A { var x: String