From c6697499153329c088b60404bc584bf4b85a105b Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Thu, 14 Oct 2021 12:26:01 -0700 Subject: [PATCH] FIR LC: adapt to split of property annotations during FIR building As of 7243d308, property annotations are split according to use-site, and thus, for property accessors and setter parameter, FIR LC needs to look up accessors and setter parameter with the target use-site. --- .../api/fir/FirIdeDeserializedDeclarationSourceProvider.kt | 1 + .../api/fir/symbols/annotations/KtFirAnnotationCall.kt | 1 - .../classes/symbol/methods/FirLightAccessorMethodForSymbol.kt | 3 +-- .../symbol/parameters/FirLightSetterParameterForSymbol.kt | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/FirIdeDeserializedDeclarationSourceProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/FirIdeDeserializedDeclarationSourceProvider.kt index c7da59a3e9e..f895a34bfa6 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/FirIdeDeserializedDeclarationSourceProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/FirIdeDeserializedDeclarationSourceProvider.kt @@ -125,6 +125,7 @@ object FirIdeDeserializedDeclarationSourceProvider { private fun KtElement.isCompiled(): Boolean = containingKtFile.isCompiled private val allowedFakeElementKinds = setOf( + FirFakeSourceElementKind.FromUseSiteTarget, FirFakeSourceElementKind.PropertyFromParameter, FirFakeSourceElementKind.ItLambdaParameter, FirFakeSourceElementKind.DataClassGeneratedMembers, diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/KtFirAnnotationCall.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/KtFirAnnotationCall.kt index 54acc547f3a..53e69625347 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/KtFirAnnotationCall.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/annotations/KtFirAnnotationCall.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.analysis.api.fir.symbols.annotations -import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.analysis.api.fir.evaluate.KtFirConstantValueConverter import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.declarations.FirDeclaration diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightAccessorMethodForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightAccessorMethodForSymbol.kt index aae8b269787..031ca4c5730 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightAccessorMethodForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/FirLightAccessorMethodForSymbol.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.light.classes.symbol import com.intellij.psi.* -import com.intellij.psi.impl.light.LightParameterListBuilder import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_GETTER import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_SETTER @@ -92,7 +91,7 @@ internal class FirLightAccessorMethodForSymbol( val annotationsFromAccessor = propertyAccessorSymbol.computeAnnotations( parent = this, nullability = NullabilityType.Unknown, - annotationUseSiteTarget = null, + annotationUseSiteTarget = accessorSite, ) return annotationsFromProperty + annotationsFromAccessor diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightSetterParameterForSymbol.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightSetterParameterForSymbol.kt index 768f2929c1a..8e0b988e205 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightSetterParameterForSymbol.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/FirLightSetterParameterForSymbol.kt @@ -24,7 +24,7 @@ internal class FirLightSetterParameterForSymbol( val annotationsFromSetter = parameterSymbol.computeAnnotations( parent = this, nullability = NullabilityType.Unknown, - annotationUseSiteTarget = null, + annotationUseSiteTarget = AnnotationUseSiteTarget.SETTER_PARAMETER, ) val annotationsFromProperty = containingPropertySymbol.computeAnnotations(