From 357015f399cdf7d3433e9cccce78d276b7c2bfc6 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Mon, 18 Dec 2023 14:34:38 +0100 Subject: [PATCH] [FIR] FirFakeOverrideGenerator: drop fake attributes from value parameters We can find corresponding parameters by the containing function symbol. Analysis API part is covered by tests from: * FirIdeNormalAnalysisSourceModuleResolveCandidatesTestGenerated * FirIdeNormalAnalysisSourceModuleResolveCallTestGenerated * FirIdeNormalAnalysisSourceModuleTypeScopeTestGenerated ^KT-64243 --- .../analysis/api/fir/KtSymbolByFirBuilder.kt | 15 ++++++++++-- .../explicitSubstitutionOverrideProperty.txt | 24 +++++++++---------- ...icitSubstitutionOverridePropertyScript.txt | 24 +++++++++---------- .../implicitSubstitutionOverrideProperty.txt | 24 +++++++++---------- ...icitSubstitutionOverridePropertyScript.txt | 24 +++++++++---------- .../substitutionFakeOverrideFunction.txt | 12 +++++----- ...substitutionFakeOverrideFunctionScript.txt | 12 +++++----- ...eAnonymousObjectWithSubstitution.after.txt | 18 +++++++------- ...AnonymousObjectWithSubstitution.before.txt | 18 +++++++------- ...mousObjectWithSubstitutionScript.after.txt | 18 +++++++------- ...ousObjectWithSubstitutionScript.before.txt | 18 +++++++------- ...tTypeInsideClassWithSubstitution.after.txt | 18 +++++++------- ...TypeInsideClassWithSubstitution.before.txt | 18 +++++++------- ...nsideClassWithSubstitutionScript.after.txt | 18 +++++++------- ...sideClassWithSubstitutionScript.before.txt | 18 +++++++------- ...eAnonymousObjectWithSubstitution.after.txt | 18 +++++++------- ...AnonymousObjectWithSubstitution.before.txt | 18 +++++++------- ...mousObjectWithSubstitutionScript.after.txt | 18 +++++++------- ...ousObjectWithSubstitutionScript.before.txt | 18 +++++++------- ...tTypeInsideClassWithSubstitution.after.txt | 18 +++++++------- ...TypeInsideClassWithSubstitution.before.txt | 18 +++++++------- ...nsideClassWithSubstitutionScript.after.txt | 18 +++++++------- ...sideClassWithSubstitutionScript.before.txt | 18 +++++++------- .../intersectionOverride.after.txt | 4 ++-- .../intersectionOverride.before.txt | 4 ++-- .../intersectionOverride2.after.txt | 4 ++-- .../intersectionOverride2.before.txt | 4 ++-- .../intersectionOverride2Script.after.txt | 4 ++-- .../intersectionOverride2Script.before.txt | 4 ++-- .../intersectionOverrideScript.after.txt | 4 ++-- .../intersectionOverrideScript.before.txt | 4 ++-- ...mplicitTypeInsideAnonymousObject.after.txt | 12 +++++----- ...plicitTypeInsideAnonymousObject.before.txt | 12 +++++----- ...tTypeInsideAnonymousObjectScript.after.txt | 12 +++++----- ...TypeInsideAnonymousObjectScript.before.txt | 12 +++++----- ...mplicitTypeInsideAnonymousObject.after.txt | 12 +++++----- ...plicitTypeInsideAnonymousObject.before.txt | 12 +++++----- ...tTypeInsideAnonymousObjectScript.after.txt | 12 +++++----- ...TypeInsideAnonymousObjectScript.before.txt | 12 +++++----- ...mplicitTypeInsideAnonymousObject.after.txt | 6 ++--- ...plicitTypeInsideAnonymousObject.before.txt | 6 ++--- ...tTypeInsideAnonymousObjectScript.after.txt | 6 ++--- ...TypeInsideAnonymousObjectScript.before.txt | 6 ++--- ...rrideWithImplicitTypeInsideClass.after.txt | 6 ++--- ...rideWithImplicitTypeInsideClass.before.txt | 6 ++--- ...ithImplicitTypeInsideClassScript.after.txt | 6 ++--- ...thImplicitTypeInsideClassScript.before.txt | 6 ++--- ...mplicitTypeInsideAnonymousObject.after.txt | 6 ++--- ...plicitTypeInsideAnonymousObject.before.txt | 6 ++--- ...tTypeInsideAnonymousObjectScript.after.txt | 6 ++--- ...TypeInsideAnonymousObjectScript.before.txt | 6 ++--- ...deWithoutImplicitTypeInsideClass.after.txt | 6 ++--- ...eWithoutImplicitTypeInsideClass.before.txt | 6 ++--- ...outImplicitTypeInsideClassScript.after.txt | 6 ++--- ...utImplicitTypeInsideClassScript.before.txt | 6 ++--- .../substitutionOverride/function.after.txt | 2 +- .../substitutionOverride/function.before.txt | 2 +- .../function.lazyResolve.txt | 12 +++++----- .../functionScript.after.txt | 2 +- .../functionScript.before.txt | 2 +- .../functionScript.lazyResolve.txt | 12 +++++----- .../functionUnavailable.after.txt | 2 +- .../functionUnavailable.before.txt | 2 +- .../functionUnavailable.lazyResolve.txt | 12 +++++----- .../functionUnavailableScript.after.txt | 2 +- .../functionUnavailableScript.before.txt | 2 +- .../functionUnavailableScript.lazyResolve.txt | 12 +++++----- .../implicitFunction.after.txt | 2 +- .../implicitFunction.before.txt | 2 +- .../implicitFunction.lazyResolve.txt | 12 +++++----- .../implicitFunctionScript.after.txt | 2 +- .../implicitFunctionScript.before.txt | 2 +- .../implicitFunctionScript.lazyResolve.txt | 12 +++++----- .../implicitFunctionUnavailable.after.txt | 2 +- .../implicitFunctionUnavailable.before.txt | 2 +- ...mplicitFunctionUnavailable.lazyResolve.txt | 12 +++++----- ...mplicitFunctionUnavailableScript.after.txt | 2 +- ...plicitFunctionUnavailableScript.before.txt | 2 +- ...tFunctionUnavailableScript.lazyResolve.txt | 12 +++++----- .../implicitProperty.after.txt | 4 ++-- .../implicitProperty.before.txt | 4 ++-- .../implicitProperty.lazyResolve.txt | 24 +++++++++---------- .../implicitPropertyAndReceiver.after.txt | 4 ++-- .../implicitPropertyAndReceiver.before.txt | 4 ++-- ...mplicitPropertyAndReceiver.lazyResolve.txt | 24 +++++++++---------- ...mplicitPropertyAndReceiverScript.after.txt | 5 ++-- ...plicitPropertyAndReceiverScript.before.txt | 4 ++-- ...tPropertyAndReceiverScript.lazyResolve.txt | 24 +++++++++---------- .../implicitPropertyScript.after.txt | 4 ++-- .../implicitPropertyScript.before.txt | 4 ++-- .../implicitPropertyScript.lazyResolve.txt | 24 +++++++++---------- .../implicitPropertyUnavailable.after.txt | 4 ++-- .../implicitPropertyUnavailable.before.txt | 4 ++-- ...mplicitPropertyUnavailable.lazyResolve.txt | 24 +++++++++---------- ...mplicitPropertyUnavailableScript.after.txt | 4 ++-- ...plicitPropertyUnavailableScript.before.txt | 4 ++-- ...tPropertyUnavailableScript.lazyResolve.txt | 24 +++++++++---------- .../substitutionOverride/property.after.txt | 4 ++-- .../substitutionOverride/property.before.txt | 4 ++-- .../property.lazyResolve.txt | 24 +++++++++---------- .../propertyScript.after.txt | 4 ++-- .../propertyScript.before.txt | 4 ++-- .../propertyScript.lazyResolve.txt | 24 +++++++++---------- .../propertyUnavailable.after.txt | 4 ++-- .../propertyUnavailable.before.txt | 4 ++-- .../propertyUnavailable.lazyResolve.txt | 24 +++++++++---------- .../propertyUnavailableScript.after.txt | 4 ++-- .../propertyUnavailableScript.before.txt | 5 ++-- .../propertyUnavailableScript.lazyResolve.txt | 24 +++++++++---------- .../scopes/impl/FirFakeOverrideGenerator.kt | 11 --------- 110 files changed, 555 insertions(+), 553 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt index 4fd43edd01e..6c13b150184 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt @@ -340,9 +340,20 @@ internal class KtSymbolByFirBuilder( } fun buildValueParameterSymbol(firSymbol: FirValueParameterSymbol): KtValueParameterSymbol { - firSymbol.fir.unwrapSubstitutionOverrideIfNeeded()?.let { - return buildValueParameterSymbol(it.symbol) + val functionSymbol = firSymbol.containingFunctionSymbol + functionSymbol.fir.unwrapSubstitutionOverrideIfNeeded()?.let { unwrappedFunction -> + val originalIndex = functionSymbol.valueParameterSymbols.indexOf(firSymbol) + if (originalIndex == -1) { + errorWithAttachment("Containing function doesn't have the corresponding parameter") { + withFirSymbolEntry("valueParameter", firSymbol) + withFirSymbolEntry("function", functionSymbol) + } + } + + val unwrappedParameter = unwrappedFunction.symbol.valueParameterSymbols[originalIndex] + return buildValueParameterSymbol(unwrappedParameter) } + return symbolsCache.cache(firSymbol) { KtFirValueParameterSymbol(firSymbol, analysisSession) } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/explicitSubstitutionOverrideProperty.txt b/analysis/low-level-api-fir/testData/lazyResolve/explicitSubstitutionOverrideProperty.txt index 69dc1d7fbb1..fdb2a9af3f5 100644 --- a/analysis/low-level-api-fir/testData/lazyResolve/explicitSubstitutionOverrideProperty.txt +++ b/analysis/low-level-api-fir/testData/lazyResolve/explicitSubstitutionOverrideProperty.txt @@ -1,7 +1,7 @@ STATUS: TARGET: @PROPERTY:R|second/Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] var resolveMe: R|kotlin/String?| - @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|kotlin/String?| - @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(STATUS)] value: R|kotlin/String?|): R|kotlin/Unit| + @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] get(): R|kotlin/String?| + @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] set([ResolvedTo(STATUS)] value: R|kotlin/String?|): R|kotlin/Unit| FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FIELD|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { @@ -36,8 +36,8 @@ FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt EXPECT_ACTUAL_MATCHING: TARGET: @PROPERTY:R|second/Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] var resolveMe: R|kotlin/String?| - @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|kotlin/String?| - @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(EXPECT_ACTUAL_MATCHING)] value: R|kotlin/String?|): R|kotlin/Unit| + @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=SubClass] get(): R|kotlin/String?| + @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=SubClass] set([ResolvedTo(EXPECT_ACTUAL_MATCHING)] value: R|kotlin/String?|): R|kotlin/Unit| FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FIELD|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { @@ -72,8 +72,8 @@ FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt CONTRACTS: TARGET: @PROPERTY:R|second/Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(CONTRACTS)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] var resolveMe: R|kotlin/String?| - @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(CONTRACTS)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|kotlin/String?| - @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(CONTRACTS)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(CONTRACTS)] value: R|kotlin/String?|): R|kotlin/Unit| + @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(CONTRACTS)] [ContainingClassKey=SubClass] get(): R|kotlin/String?| + @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(CONTRACTS)] [ContainingClassKey=SubClass] set([ResolvedTo(CONTRACTS)] value: R|kotlin/String?|): R|kotlin/Unit| FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FIELD|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { @@ -108,8 +108,8 @@ FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt IMPLICIT_TYPES_BODY_RESOLVE: TARGET: @PROPERTY:R|second/Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] var resolveMe: R|kotlin/String?| - @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|kotlin/String?| - @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] value: R|kotlin/String?|): R|kotlin/Unit| + @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=SubClass] get(): R|kotlin/String?| + @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=SubClass] set([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] value: R|kotlin/String?|): R|kotlin/Unit| FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt @R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FIELD|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| { @@ -144,8 +144,8 @@ FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt ANNOTATION_ARGUMENTS: TARGET: @PROPERTY:R|second/Anno|[Types](position = (String(property ), R|second/constant|)) public final [ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] var resolveMe: R|kotlin/String?| - @PROPERTY_GETTER:R|second/Anno|[Types](position = (String(get ), R|second/constant|)) public [ResolvedTo(ANNOTATION_ARGUMENTS)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|kotlin/String?| - @PROPERTY_SETTER:R|second/Anno|[Types](position = (String(set ), R|second/constant|)) public [ResolvedTo(ANNOTATION_ARGUMENTS)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(ANNOTATION_ARGUMENTS)] value: R|kotlin/String?|): R|kotlin/Unit| + @PROPERTY_GETTER:R|second/Anno|[Types](position = (String(get ), R|second/constant|)) public [ResolvedTo(ANNOTATION_ARGUMENTS)] [ContainingClassKey=SubClass] get(): R|kotlin/String?| + @PROPERTY_SETTER:R|second/Anno|[Types](position = (String(set ), R|second/constant|)) public [ResolvedTo(ANNOTATION_ARGUMENTS)] [ContainingClassKey=SubClass] set([ResolvedTo(ANNOTATION_ARGUMENTS)] value: R|kotlin/String?|): R|kotlin/Unit| FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FIELD|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { @@ -180,8 +180,8 @@ FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt BODY_RESOLVE: TARGET: @PROPERTY:R|second/Anno|[Types](position = (String(property ), R|second/constant|)) public final [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] var resolveMe: R|kotlin/String?| - @PROPERTY_GETTER:R|second/Anno|[Types](position = (String(get ), R|second/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|kotlin/String?| - @PROPERTY_SETTER:R|second/Anno|[Types](position = (String(set ), R|second/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|kotlin/String?|): R|kotlin/Unit| + @PROPERTY_GETTER:R|second/Anno|[Types](position = (String(get ), R|second/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SubClass] get(): R|kotlin/String?| + @PROPERTY_SETTER:R|second/Anno|[Types](position = (String(set ), R|second/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SubClass] set([ResolvedTo(BODY_RESOLVE)] value: R|kotlin/String?|): R|kotlin/Unit| FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverrideProperty.kt @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FIELD|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { diff --git a/analysis/low-level-api-fir/testData/lazyResolve/explicitSubstitutionOverridePropertyScript.txt b/analysis/low-level-api-fir/testData/lazyResolve/explicitSubstitutionOverridePropertyScript.txt index 38f2e79de98..414e66549a5 100644 --- a/analysis/low-level-api-fir/testData/lazyResolve/explicitSubstitutionOverridePropertyScript.txt +++ b/analysis/low-level-api-fir/testData/lazyResolve/explicitSubstitutionOverridePropertyScript.txt @@ -1,7 +1,7 @@ STATUS: TARGET: @PROPERTY:R|second/Anno|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] var resolveMe: R|kotlin/String?| - @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|kotlin/String?| - @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(STATUS)] value: R|kotlin/String?|): R|kotlin/Unit| + @PROPERTY_GETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] get(): R|kotlin/String?| + @PROPERTY_SETTER:R|second/Anno|[Types](LAZY_EXPRESSION) public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] set([ResolvedTo(STATUS)] value: R|kotlin/String?|): R|kotlin/Unit| FILE: [ResolvedTo(IMPORTS)] explicitSubstitutionOverridePropertyScript.kts context(