From 79686ba242a223f53463609157025677007eaa59 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Wed, 17 Aug 2022 17:38:26 -0700 Subject: [PATCH] AA FE1.0: don't return psi for fake overrides --- .../symbols/descriptorBased/base/KtFe10DescSymbol.kt | 11 +---------- .../org/jetbrains/kotlin/analysis/api/fir/psiUtils.kt | 1 - .../analysis/api/components/KtOverrideInfoProvider.kt | 2 +- .../jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt | 3 ++- 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/KtFe10DescSymbol.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/KtFe10DescSymbol.kt index 0bc78d57039..0955d83a444 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/KtFe10DescSymbol.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/symbols/descriptorBased/base/KtFe10DescSymbol.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.api.descriptors.symbols.base.KtFe10Annotate import org.jetbrains.kotlin.analysis.api.descriptors.symbols.base.KtFe10Symbol import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion -import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithSource import org.jetbrains.kotlin.descriptors.SourceElement @@ -25,15 +24,7 @@ internal interface KtFe10DescSymbol : KtFe10Symbol, K val source: SourceElement get() = withValidityAssertion { - val descriptor = this.descriptor - if (descriptor is CallableMemberDescriptor && descriptor.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) { - val firstOverridden = descriptor.overriddenDescriptors.firstOrNull() - if (firstOverridden != null) { - return firstOverridden.source - } - } - - return (descriptor as? DeclarationDescriptorWithSource)?.source ?: SourceElement.NO_SOURCE + (descriptor as? DeclarationDescriptorWithSource)?.source ?: SourceElement.NO_SOURCE } override val psi: PsiElement? diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/psiUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/psiUtils.kt index f7b60ea02d6..fc320222340 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/psiUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/psiUtils.kt @@ -40,7 +40,6 @@ fun FirElement.findPsi(project: Project): PsiElement? = getAllowedPsi() ?: FirDeserializedDeclarationSourceProvider.findPsi(this, project) - fun FirBasedSymbol<*>.findPsi(): PsiElement? = fir.findPsi(fir.moduleData.session) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtOverrideInfoProvider.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtOverrideInfoProvider.kt index 98cfccc4c4c..799f3cf5870 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtOverrideInfoProvider.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtOverrideInfoProvider.kt @@ -51,7 +51,7 @@ public interface KtMemberSymbolProviderMixin : KtAnalysisSessionMixIn { * in `A` that takes the type parameter `T`. Given such a derived symbol, [originalOverriddenSymbol] recovers the original declared * symbol. * - * Such situation can also happens for intersection symbols (in case of multiple super types containing symbols with identical signature + * Such situation can also happen for intersection symbols (in case of multiple super types containing symbols with identical signature * after specialization) and delegation. */ public val KtCallableSymbol.originalOverriddenSymbol: KtCallableSymbol? diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt index 55008d100ef..a8781b27461 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt @@ -95,7 +95,8 @@ public enum class KtSymbolOrigin { * interface B : A { } * ``` * - * The B will have a member B.foo(): Int, this member is generated inside interface B with substtution T -> Int, such members are SUBSTITUTION_OVERRIDE + * The B will have a member B.foo(): Int, this member is generated inside interface B with substitution T -> Int, + * such members are SUBSTITUTION_OVERRIDE */ SUBSTITUTION_OVERRIDE,