From f1bf3c0d5aac9fff978970ccb6402bcde3676f1c Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 30 Jun 2021 14:03:19 +0300 Subject: [PATCH] [FIR] Don't duplicate annotations from enum entry to its initializer --- .../kotlin/fir/lightTree/converter/DeclarationsConverter.kt | 1 - .../src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt | 1 - .../rawBuilder/declarations/annotation.lazyBodies.txt | 4 ++-- .../psi2fir/testData/rawBuilder/declarations/annotation.txt | 4 ++-- .../annotations/enumEntriesWithAnnotations.fir.kt.txt | 1 - .../annotations/enumEntriesWithAnnotations.fir.txt | 2 -- 6 files changed, 4 insertions(+), 9 deletions(-) diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt index a882f0d22b1..46f20ad6700 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt @@ -673,7 +673,6 @@ class DeclarationsConverter( classKind = ClassKind.ENUM_ENTRY scopeProvider = baseScopeProvider symbol = FirAnonymousObjectSymbol() - annotations += modifiers.annotations val enumClassWrapper = ClassWrapper( enumEntryName, modifiers, ClassKind.ENUM_ENTRY, this, hasPrimaryConstructor = true, diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index 2af2395939f..6fee4de4bd1 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -793,7 +793,6 @@ open class RawFirBuilder( scopeProvider = this@RawFirBuilder.baseScopeProvider symbol = FirAnonymousObjectSymbol() - extractAnnotationsTo(this) val delegatedEntrySelfType = buildResolvedTypeRef { type = ConeClassLikeTypeImpl(this@buildAnonymousObject.symbol.toLookupTag(), emptyArray(), isNullable = false) diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.lazyBodies.txt index 65f4281778e..d7bc72ef83e 100644 --- a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.lazyBodies.txt +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.lazyBodies.txt @@ -29,14 +29,14 @@ FILE: annotation.kt super|>() } - @base() public final static enum entry FIRST: R|My| = @base() object : R|My| { + @base() public final static enum entry FIRST: R|My| = object : R|My| { private constructor(): R|| { super() } } - @base() public final static enum entry SECOND: R|My| = @base() object : R|My| { + @base() public final static enum entry SECOND: R|My| = object : R|My| { private constructor(): R|| { super() } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.txt index d88eb8f8346..3a780f34ad4 100644 --- a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.txt +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.txt @@ -29,14 +29,14 @@ FILE: annotation.kt super|>() } - @base() public final static [ContainingClassKey=My] enum entry FIRST: R|My| = @base() object : R|My| { + @base() public final static [ContainingClassKey=My] enum entry FIRST: R|My| = object : R|My| { private [ContainingClassKey=] constructor(): R|| { super() } } - @base() public final static [ContainingClassKey=My] enum entry SECOND: R|My| = @base() object : R|My| { + @base() public final static [ContainingClassKey=My] enum entry SECOND: R|My| = object : R|My| { private [ContainingClassKey=] constructor(): R|| { super() } diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.kt.txt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.kt.txt index cc33301670a..1b3abe7ab30 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.kt.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.kt.txt @@ -18,7 +18,6 @@ open enum class TestEnum : Enum { @TestAnn(x = "ENTRY2") ENTRY2 = ENTRY2() - @TestAnn(x = "ENTRY2") private enum entry class ENTRY2 : TestEnum { private constructor() /* primary */ { super/*TestEnum*/() diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt index 7e0a5b07353..154b0dd2197 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt @@ -45,8 +45,6 @@ FILE fqName: fileName:/enumEntriesWithAnnotations.kt init: EXPRESSION_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum.ENTRY2' class: CLASS ENUM_ENTRY name:ENTRY2 modality:FINAL visibility:private superTypes:[.TestEnum] - annotations: - TestAnn(x = 'ENTRY2') $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum.ENTRY2 CONSTRUCTOR visibility:private <> () returnType:.TestEnum.ENTRY2 [primary] BLOCK_BODY