From 5a545207236611f5a36afd9fa4c48acd1a17028f Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Tue, 21 Nov 2023 18:22:04 +0100 Subject: [PATCH] [FIR] add missed transformations for type annotations inside FirField This issue doesn't affect the compiler because delegate field shares annotation instance with the containing class, so it will be resolved before field anyway. In Low Level FIR we didn't notice this issue because we don't have isResolved checks for type annotations (KT-63681) ^KT-63042 ^KT-63681 --- ...gateFieldWithAnnotationClash.lazyResolve.txt | 16 ++++++++-------- ...eldWithAnnotationClashScript.lazyResolve.txt | 17 +++++++++-------- .../delegatedFieldNestedName.lazyResolve.txt | 16 ++++++++-------- ...estedNameClashAndAnnotations.lazyResolve.txt | 16 ++++++++-------- ...ameClashAndAnnotationsScript.lazyResolve.txt | 17 +++++++++-------- ...ithNestedTypesAndAnnotations.lazyResolve.txt | 16 ++++++++-------- ...tedTypesAndAnnotationsScript.lazyResolve.txt | 17 +++++++++-------- ...legatedFieldNestedNameScript.lazyResolve.txt | 17 +++++++++-------- .../delegate/field.lazyResolve.txt | 12 ++++++------ .../delegate/fieldScript.lazyResolve.txt | 13 +++++++------ .../plugin/FirAnnotationArgumentsTransformer.kt | 2 ++ 11 files changed, 83 insertions(+), 76 deletions(-) diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegateFieldWithAnnotationClash.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegateFieldWithAnnotationClash.lazyResolve.txt index e8ce686cebd..4cb7cf91415 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegateFieldWithAnnotationClash.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegateFieldWithAnnotationClash.lazyResolve.txt @@ -350,26 +350,26 @@ FILE: [ResolvedTo(IMPORTS)] delegateFieldWithAnnotationClash.kt ANNOTATION_ARGUMENTS: FILE: [ResolvedTo(IMPORTS)] delegateFieldWithAnnotationClash.kt - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/Anno.int] int: Int): R|second/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/Anno.int] int: R|kotlin/Int|): R|second/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val int: Int = R|/int| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): Int + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val int: R|kotlin/Int| = R|/int| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int| } public abstract [ResolvedTo(STATUS)] interface Base : R|kotlin/Any| { } public? final? [ResolvedTo(RAW_FIR)] fun bar(): Base { LAZY_BLOCK } - public? final? const [ResolvedTo(RAW_FIR)] val constant: = LAZY_EXPRESSION - public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(constant#) second/Base| { + public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val constant: R|kotlin/Int| = Int(0) + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/Int| + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(int = R|second/constant|) second/Base| { public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(constant#) second/Base| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(int = R|second/constant|) second/Base| = LAZY_EXPRESSION @Target[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/MyClass.Anno.string] string: String): R|second/MyClass.Anno| { diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegateFieldWithAnnotationClashScript.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegateFieldWithAnnotationClashScript.lazyResolve.txt index 08d8096e0cf..41e5e60bd71 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegateFieldWithAnnotationClashScript.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegateFieldWithAnnotationClashScript.lazyResolve.txt @@ -444,13 +444,13 @@ FILE: [ResolvedTo(IMPORTS)] delegateFieldWithAnnotationClashScript.kts SCRIPT: [ResolvedTo(TYPES)] [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array| - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/Anno.int] int: Int): R|second/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/Anno.int] int: R|kotlin/Int|): R|second/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val int: Int = R|/int| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): Int + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val int: R|kotlin/Int| = R|/int| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int| } @@ -459,15 +459,15 @@ FILE: [ResolvedTo(IMPORTS)] delegateFieldWithAnnotationClashScript.kts public? final? [ResolvedTo(RAW_FIR)] fun bar(): Base { LAZY_BLOCK } - public? final? const [ResolvedTo(RAW_FIR)] val constant: = LAZY_EXPRESSION - public? [ResolvedTo(RAW_FIR)] get(): + public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val constant: R|kotlin/Int| = Int(0) + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/Int| - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(constant#) second/Base| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(int = R|second/constant|) second/Base| { public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(constant#) second/Base| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(int = R|second/constant|) second/Base| = LAZY_EXPRESSION @Target[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/MyClass.Anno.string] string: String): R|second/MyClass.Anno| { @@ -570,3 +570,4 @@ FILE: [ResolvedTo(BODY_RESOLVE)] delegateFieldWithAnnotationClashScript.kts } } + diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedName.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedName.lazyResolve.txt index 9f0f628ddac..a3e00edd5a8 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedName.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedName.lazyResolve.txt @@ -520,13 +520,13 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedName.kt ANNOTATION_ARGUMENTS: FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedName.kt - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/Anno.i] i: Int): R|second/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/Anno.i] i: R|kotlin/Int|): R|second/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val i: Int = R|/i| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): Int + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val i: R|kotlin/Int| = R|/i| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int| } public abstract [ResolvedTo(STATUS)] interface Base<[ResolvedTo(STATUS)] A> : R|kotlin/Any| { @@ -539,12 +539,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedName.kt public? [ResolvedTo(RAW_FIR)] get(): public? final? const [ResolvedTo(RAW_FIR)] val inner: = LAZY_EXPRESSION public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0, 1=FirFieldSymbol second/MyClass.$$delegate_1}] class MyClass : R|@R|second/Anno|(IntegerLiteral(0).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(outer#)) kotlin/Int>>|, R|@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Second<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/String>| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0, 1=FirFieldSymbol second/MyClass.$$delegate_1}] class MyClass : R|@R|second/Anno|(i = IntegerLiteral(0).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(1).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(2).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) kotlin/Int>>|, R|@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Second<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/String>| { public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(IntegerLiteral(0).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(outer#)) kotlin/Int>>| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(i = IntegerLiteral(0).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(1).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(2).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) kotlin/Int>>| = LAZY_EXPRESSION private final [ResolvedTo(STATUS)] field $$delegate_1: R|@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Second<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/String>| = LAZY_EXPRESSION @@ -553,8 +553,8 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedName.kt LAZY_super<> } - public final const [ResolvedTo(STATUS)] val outer: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): + public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val outer: R|kotlin/String| = String() + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/String| public final const [ResolvedTo(STATUS)] val inner: = LAZY_EXPRESSION public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashAndAnnotations.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashAndAnnotations.lazyResolve.txt index b0f7b115e80..e71fc6da2ab 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashAndAnnotations.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashAndAnnotations.lazyResolve.txt @@ -470,13 +470,13 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashAndAnnotations.kt ANNOTATION_ARGUMENTS: FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashAndAnnotations.kt - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/Anno.i] i: Int): R|second/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/Anno.i] i: R|kotlin/Int|): R|second/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val i: Int = R|/i| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): Int + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val i: R|kotlin/Int| = R|/i| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int| } public abstract [ResolvedTo(STATUS)] interface Base : R|kotlin/Any| { @@ -487,12 +487,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashAndAnnotations.kt public? [ResolvedTo(RAW_FIR)] get(): public? final? const [ResolvedTo(RAW_FIR)] val inner: = LAZY_EXPRESSION public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(IntegerLiteral(1).plus#(outer#)) second/Base| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(i = IntegerLiteral(1).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base| { public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base|): R|second/MyClass| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(IntegerLiteral(1).plus#(outer#)) second/Base| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(i = IntegerLiteral(1).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base| = LAZY_EXPRESSION public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base| @@ -505,8 +505,8 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashAndAnnotations.kt LAZY_super } - public final const [ResolvedTo(STATUS)] val outer: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): + public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val outer: R|kotlin/String| = String() + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/String| public final const [ResolvedTo(STATUS)] val inner: = LAZY_EXPRESSION public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashAndAnnotationsScript.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashAndAnnotationsScript.lazyResolve.txt index 0b239da6d21..486f914ff3a 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashAndAnnotationsScript.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashAndAnnotationsScript.lazyResolve.txt @@ -564,13 +564,13 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashAndAnnotationsScript.kt SCRIPT: [ResolvedTo(TYPES)] [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array| - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/Anno.i] i: Int): R|second/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/Anno.i] i: R|kotlin/Int|): R|second/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val i: Int = R|/i| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): Int + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val i: R|kotlin/Int| = R|/i| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int| } @@ -585,12 +585,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashAndAnnotationsScript.kt public? final? const [ResolvedTo(RAW_FIR)] val inner: = LAZY_EXPRESSION public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(IntegerLiteral(1).plus#(outer#)) second/Base| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(i = IntegerLiteral(1).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base| { public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base|): R|second/MyClass| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(IntegerLiteral(1).plus#(outer#)) second/Base| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(i = IntegerLiteral(1).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base| = LAZY_EXPRESSION public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base| @@ -603,8 +603,8 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashAndAnnotationsScript.kt LAZY_super } - public final const [ResolvedTo(STATUS)] val outer: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): + public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val outer: R|kotlin/String| = String() + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/String| public final const [ResolvedTo(STATUS)] val inner: = LAZY_EXPRESSION public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): @@ -725,3 +725,4 @@ FILE: [ResolvedTo(BODY_RESOLVE)] delegatedFieldNestedNameClashAndAnnotationsScri } } + diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashWithNestedTypesAndAnnotations.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashWithNestedTypesAndAnnotations.lazyResolve.txt index 54029ab200e..7b91395d223 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashWithNestedTypesAndAnnotations.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashWithNestedTypesAndAnnotations.lazyResolve.txt @@ -470,13 +470,13 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashWithNestedTypesAndAnnot ANNOTATION_ARGUMENTS: FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashWithNestedTypesAndAnnotations.kt - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/Anno.i] i: Int): R|second/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/Anno.i] i: R|kotlin/Int|): R|second/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val i: Int = R|/i| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): Int + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val i: R|kotlin/Int| = R|/i| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int| } public abstract [ResolvedTo(STATUS)] interface Base<[ResolvedTo(STATUS)] A> : R|kotlin/Any| { @@ -487,12 +487,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashWithNestedTypesAndAnnot public? [ResolvedTo(RAW_FIR)] get(): public? final? const [ResolvedTo(RAW_FIR)] val inner: = LAZY_EXPRESSION public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(IntegerLiteral(3).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/Int>>| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(i = IntegerLiteral(3).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(4).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(5).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) kotlin/Int>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(inner#)) kotlin/Int>>|): R|second/MyClass| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(IntegerLiteral(3).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/Int>>| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(i = IntegerLiteral(3).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(4).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(5).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) kotlin/Int>>| = LAZY_EXPRESSION public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(inner#)) kotlin/Int>>| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(inner#)) kotlin/Int>>| @@ -505,8 +505,8 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashWithNestedTypesAndAnnot LAZY_super } - public final const [ResolvedTo(STATUS)] val outer: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): + public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val outer: R|kotlin/String| = String() + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/String| public final const [ResolvedTo(STATUS)] val inner: = LAZY_EXPRESSION public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashWithNestedTypesAndAnnotationsScript.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashWithNestedTypesAndAnnotationsScript.lazyResolve.txt index b9413eafa8f..c4a9ca31882 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashWithNestedTypesAndAnnotationsScript.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameClashWithNestedTypesAndAnnotationsScript.lazyResolve.txt @@ -564,13 +564,13 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashWithNestedTypesAndAnnot SCRIPT: [ResolvedTo(TYPES)] [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array| - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/Anno.i] i: Int): R|second/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/Anno.i] i: R|kotlin/Int|): R|second/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val i: Int = R|/i| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): Int + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val i: R|kotlin/Int| = R|/i| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int| } @@ -585,12 +585,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashWithNestedTypesAndAnnot public? final? const [ResolvedTo(RAW_FIR)] val inner: = LAZY_EXPRESSION public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(IntegerLiteral(3).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/Int>>| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|@R|second/Anno|(i = IntegerLiteral(3).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(4).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(5).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) kotlin/Int>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(inner#)) kotlin/Int>>|): R|second/MyClass| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(IntegerLiteral(3).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/Int>>| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(i = IntegerLiteral(3).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(4).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(5).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) kotlin/Int>>| = LAZY_EXPRESSION public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(inner#)) kotlin/Int>>| = R|/prop| public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|@R|second/Anno|(IntegerLiteral(0).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(inner#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(inner#)) kotlin/Int>>| @@ -603,8 +603,8 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashWithNestedTypesAndAnnot LAZY_super } - public final const [ResolvedTo(STATUS)] val outer: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): + public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val outer: R|kotlin/String| = String() + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/String| public final const [ResolvedTo(STATUS)] val inner: = LAZY_EXPRESSION public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): @@ -725,3 +725,4 @@ FILE: [ResolvedTo(BODY_RESOLVE)] delegatedFieldNestedNameClashWithNestedTypesAnd } } + diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameScript.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameScript.lazyResolve.txt index 651e99652a8..f59f929532b 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameScript.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/delegatedFieldNestedNameScript.lazyResolve.txt @@ -624,13 +624,13 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameScript.kts SCRIPT: [ResolvedTo(TYPES)] [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array| - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/Anno.i] i: Int): R|second/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/Anno.i] i: R|kotlin/Int|): R|second/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val i: Int = R|/i| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): Int + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val i: R|kotlin/Int| = R|/i| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/Int| } @@ -648,12 +648,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameScript.kts public? final? const [ResolvedTo(RAW_FIR)] val inner: = LAZY_EXPRESSION public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0, 1=FirFieldSymbol second/MyClass.$$delegate_1}] class MyClass : R|@R|second/Anno|(IntegerLiteral(0).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(outer#)) kotlin/Int>>|, R|@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Second<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/String>| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0, 1=FirFieldSymbol second/MyClass.$$delegate_1}] class MyClass : R|@R|second/Anno|(i = IntegerLiteral(0).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(1).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(2).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) kotlin/Int>>|, R|@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Second<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/String>| { public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(IntegerLiteral(0).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(1).plus#(outer#)) second/Base<@R|second/Anno|(IntegerLiteral(2).plus#(outer#)) kotlin/Int>>| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|second/Anno|(i = IntegerLiteral(0).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(1).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) second/Base<@R|second/Anno|(i = IntegerLiteral(2).#(this@R|second/MyClass.Companion|.R|second/MyClass.Companion.outer|)) kotlin/Int>>| = LAZY_EXPRESSION private final [ResolvedTo(STATUS)] field $$delegate_1: R|@R|second/Anno|(IntegerLiteral(4).plus#(outer#)) second/Second<@R|second/Anno|(IntegerLiteral(5).plus#(outer#)) kotlin/String>| = LAZY_EXPRESSION @@ -662,8 +662,8 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameScript.kts LAZY_super<> } - public final const [ResolvedTo(STATUS)] val outer: = LAZY_EXPRESSION - public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): + public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val outer: R|kotlin/String| = String() + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/String| public final const [ResolvedTo(STATUS)] val inner: = LAZY_EXPRESSION public [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): @@ -803,3 +803,4 @@ FILE: [ResolvedTo(BODY_RESOLVE)] delegatedFieldNestedNameScript.kts } } + diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/field.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/field.lazyResolve.txt index 3cad04adb09..829c50d01b9 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/field.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/field.lazyResolve.txt @@ -220,23 +220,23 @@ FILE: [ResolvedTo(IMPORTS)] field.kt ANNOTATION_ARGUMENTS: FILE: [ResolvedTo(IMPORTS)] field.kt - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.position] position: String): R|one/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=one/Anno.position] position: R|kotlin/String|): R|one/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|/position| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String| } public? final? const [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol one/Usage.$$delegate_0}] class Usage : R|@R|one/Anno|((String(super type ref ), prop#)) kotlin/collections/List<@R|one/Anno|((String(nested super type ref ), prop#)) kotlin/collections/List<@R|one/Anno|((String(nested nested super type ref ), prop#)) kotlin/Int>>| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol one/Usage.$$delegate_0}] class Usage : R|@R|one/Anno|(position = (String(super type ref ), R|/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested super type ref ), R|/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested nested super type ref ), R|/prop|)) kotlin/Int>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor([ResolvedTo(STATUS)] prop: R|kotlin/collections/List>|): R|one/Usage| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|one/Anno|((String(super type ref ), prop#)) kotlin/collections/List<@R|one/Anno|((String(nested super type ref ), prop#)) kotlin/collections/List<@R|one/Anno|((String(nested nested super type ref ), prop#)) kotlin/Int>>| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|one/Anno|(position = (String(super type ref ), R|/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested super type ref ), R|/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested nested super type ref ), R|/prop|)) kotlin/Int>>| = LAZY_EXPRESSION } diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/fieldScript.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/fieldScript.lazyResolve.txt index 06d324445a2..6b5df977cbb 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/fieldScript.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/delegate/fieldScript.lazyResolve.txt @@ -294,25 +294,25 @@ FILE: [ResolvedTo(IMPORTS)] fieldScript.kts SCRIPT: [ResolvedTo(TYPES)] [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array| - @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.position] position: String): R|one/Anno| { + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=one/Anno.position] position: R|kotlin/String|): R|one/Anno| { LAZY_super } - public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| - public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|/position| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String| } public? final? const [ResolvedTo(RAW_FIR)] val prop: = LAZY_EXPRESSION public? [ResolvedTo(RAW_FIR)] get(): - public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol one/Usage.$$delegate_0}] class Usage : R|@R|one/Anno|((String(super type ref ), prop#)) kotlin/collections/List<@R|one/Anno|((String(nested super type ref ), prop#)) kotlin/collections/List<@R|one/Anno|((String(nested nested super type ref ), prop#)) kotlin/Int>>| { + public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol one/Usage.$$delegate_0}] class Usage : R|@R|one/Anno|(position = (String(super type ref ), R|/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested super type ref ), R|/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested nested super type ref ), R|/prop|)) kotlin/Int>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor([ResolvedTo(STATUS)] prop: R|kotlin/collections/List>|): R|one/Usage| { LAZY_super<> } - private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|one/Anno|((String(super type ref ), prop#)) kotlin/collections/List<@R|one/Anno|((String(nested super type ref ), prop#)) kotlin/collections/List<@R|one/Anno|((String(nested nested super type ref ), prop#)) kotlin/Int>>| = LAZY_EXPRESSION + private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|@R|one/Anno|(position = (String(super type ref ), R|/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested super type ref ), R|/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested nested super type ref ), R|/prop|)) kotlin/Int>>| = LAZY_EXPRESSION } @@ -373,3 +373,4 @@ FILE: [ResolvedTo(BODY_RESOLVE)] fieldScript.kts private final [ResolvedTo(BODY_RESOLVE)] field $$delegate_0: R|@R|one/Anno|(position = (String(super type ref ), R|one/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested super type ref ), R|one/prop|)) kotlin/collections/List<@R|one/Anno|(position = (String(nested nested super type ref ), R|one/prop|)) kotlin/Int>>| = R|/prop| } + diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsTransformer.kt index 70cdc2c27bb..931c5c20b6a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsTransformer.kt @@ -307,6 +307,8 @@ private class FirDeclarationsResolveTransformerForAnnotationArguments( override fun transformField(field: FirField, data: ResolutionMode): FirField { context.withField(field) { field.transformAnnotations(transformer, data) + .transformReturnTypeRef(transformer, data) + .transformBackingField(transformer, data) } return field