From 83865782ff03983bd048727fd6c9b081c90443b3 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 17 May 2023 23:56:32 +0200 Subject: [PATCH] FIR: do not generate annotations on properties from delegation #KT-57228 Fixed --- .../kotlin/fir/backend/generators/DelegatedMemberGenerator.kt | 2 +- .../annotations/annotationsOnDelegatedMembers.kt | 3 --- .../bytecodeListing/deprecated/inheritingDeprecation.kt | 3 --- .../annotations/annotationsOnDelegatedMembers.fir.ir.txt | 4 ---- .../annotations/annotationsOnDelegatedMembers.fir.kt.txt | 2 -- .../declarations/annotations/inheritingDeprecation.fir.ir.txt | 4 ---- .../declarations/annotations/inheritingDeprecation.fir.kt.txt | 2 -- 7 files changed, 1 insertion(+), 19 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt index 47e7db70570..d45f21c842e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt @@ -317,7 +317,7 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I baseSymbols.add(it) } basePropertySymbols[delegateProperty] = baseSymbols - annotationGenerator.generate(delegateProperty, firDelegateProperty) + // Do not generate annotations to copy K1 behavior, see KT-57228. return delegateProperty } diff --git a/compiler/testData/codegen/bytecodeListing/annotations/annotationsOnDelegatedMembers.kt b/compiler/testData/codegen/bytecodeListing/annotations/annotationsOnDelegatedMembers.kt index d853d1f6839..b0f44d19f44 100644 --- a/compiler/testData/codegen/bytecodeListing/annotations/annotationsOnDelegatedMembers.kt +++ b/compiler/testData/codegen/bytecodeListing/annotations/annotationsOnDelegatedMembers.kt @@ -1,6 +1,3 @@ -// IGNORE_BACKEND_K2: JVM_IR -// FIR status: KT-57228 K2: annotations for interface member properties implemented by delegation are copied - annotation class Ann interface IFoo { diff --git a/compiler/testData/codegen/bytecodeListing/deprecated/inheritingDeprecation.kt b/compiler/testData/codegen/bytecodeListing/deprecated/inheritingDeprecation.kt index 89f7a322be3..1c817044b1b 100644 --- a/compiler/testData/codegen/bytecodeListing/deprecated/inheritingDeprecation.kt +++ b/compiler/testData/codegen/bytecodeListing/deprecated/inheritingDeprecation.kt @@ -1,6 +1,3 @@ -// IGNORE_BACKEND_K2: JVM_IR -// FIR status: KT-57228 K2: annotations for interface member properties implemented by delegation are copied - interface IFoo { @Deprecated("") val prop: String get() = "" diff --git a/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.fir.ir.txt b/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.fir.ir.txt index 18ed6ee567f..b978adc43dc 100644 --- a/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.fir.ir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.fir.ir.txt @@ -85,8 +85,6 @@ FILE fqName: fileName:/annotationsOnDelegatedMembers.kt receiver: GET_VAR ': .DFoo declared in .DFoo.testExtFun' type=.DFoo origin=null $receiver: GET_VAR ': kotlin.String declared in .DFoo.testExtFun' type=kotlin.String origin=null PROPERTY DELEGATED_MEMBER name:testVal visibility:public modality:OPEN [val] - annotations: - Ann overridden: public abstract testVal: kotlin.String [val] FUN DELEGATED_MEMBER name: visibility:public modality:OPEN <> ($this:.DFoo) returnType:kotlin.String @@ -100,8 +98,6 @@ FILE fqName: fileName:/annotationsOnDelegatedMembers.kt $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.IFoo visibility:private [final]' type=.IFoo origin=null receiver: GET_VAR ': .DFoo declared in .DFoo.' type=.DFoo origin=null PROPERTY DELEGATED_MEMBER name:testExtVal visibility:public modality:OPEN [val] - annotations: - Ann overridden: public abstract testExtVal: kotlin.String [val] FUN DELEGATED_MEMBER name: visibility:public modality:OPEN <> ($this:.DFoo, $receiver:kotlin.String) returnType:kotlin.String diff --git a/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.fir.kt.txt b/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.fir.kt.txt index 030bae1898c..124df8b21e2 100644 --- a/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.fir.kt.txt +++ b/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.fir.kt.txt @@ -41,13 +41,11 @@ class DFoo : IFoo { (.#$$delegate_0, ).testExtFun() } - @Ann override val testVal: String override get(): String { return .#$$delegate_0.() } - @Ann override val String.testExtVal: String override get(): String { return (.#$$delegate_0, ).() diff --git a/compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.fir.ir.txt b/compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.fir.ir.txt index e5cbe41e067..c974c0c9358 100644 --- a/compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.fir.ir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.fir.ir.txt @@ -41,8 +41,6 @@ FILE fqName: fileName:/inheritingDeprecation.kt DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Delegated modality:FINAL visibility:public superTypes:[.IFoo]' PROPERTY DELEGATED_MEMBER name:prop visibility:public modality:OPEN [val] - annotations: - Deprecated(message = '', replaceWith = , level = ) overridden: public open prop: kotlin.String [val] FUN DELEGATED_MEMBER name: visibility:public modality:OPEN <> ($this:.Delegated) returnType:kotlin.String @@ -56,8 +54,6 @@ FILE fqName: fileName:/inheritingDeprecation.kt $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.IFoo visibility:private [final]' type=.IFoo origin=null receiver: GET_VAR ': .Delegated declared in .Delegated.' type=.Delegated origin=null PROPERTY DELEGATED_MEMBER name:extProp visibility:public modality:OPEN [val] - annotations: - Deprecated(message = '', replaceWith = , level = ) overridden: public open extProp: kotlin.String [val] FUN DELEGATED_MEMBER name: visibility:public modality:OPEN <> ($this:.Delegated, $receiver:kotlin.String) returnType:kotlin.String diff --git a/compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.fir.kt.txt b/compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.fir.kt.txt index df765fbf362..ab1d2bac059 100644 --- a/compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.fir.kt.txt +++ b/compiler/testData/ir/irText/declarations/annotations/inheritingDeprecation.fir.kt.txt @@ -20,13 +20,11 @@ class Delegated : IFoo { } - @Deprecated(message = "") override val prop: String override get(): String { return .#$$delegate_0.() } - @Deprecated(message = "") override val String.extProp: String override get(): String { return (.#$$delegate_0, ).()