From eb23984182c4b211107e3d9d1fccf611f0b3c46d Mon Sep 17 00:00:00 2001 From: Sonya Valchuk Date: Fri, 19 Jan 2024 12:02:03 +0000 Subject: [PATCH] AA FIR: have KtFirReceiverParameterSymbol implement KtFirSymbol Aside from making the code shorter, this allows for correct equals/hashCode. --- .../symbols/KtFirReceiverParameterSymbol.kt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirReceiverParameterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirReceiverParameterSymbol.kt index b370922fa95..a291bc3a173 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirReceiverParameterSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirReceiverParameterSymbol.kt @@ -27,10 +27,9 @@ import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment import org.jetbrains.kotlin.utils.exceptions.requireWithAttachment internal class KtFirReceiverParameterSymbol( - val firSymbol: FirCallableSymbol<*>, - val analysisSession: KtFirAnalysisSession, -) : KtReceiverParameterSymbol(), KtLifetimeOwner { - override val token: KtLifetimeToken get() = analysisSession.token + override val firSymbol: FirCallableSymbol<*>, + override val analysisSession: KtFirAnalysisSession, +) : KtReceiverParameterSymbol(), KtFirSymbol> { override val psi: PsiElement? = withValidityAssertion{ firSymbol.fir.receiverParameter?.typeRef?.psi } init { @@ -40,15 +39,13 @@ internal class KtFirReceiverParameterSymbol( } override val type: KtType by cached { - firSymbol.receiverType(analysisSession.firSymbolBuilder) + firSymbol.receiverType(builder) ?: errorWithAttachment("${firSymbol::class} doesn't have an extension receiver") { withFirEntry("callable", firSymbol.fir) } } - override val owningCallableSymbol: KtCallableSymbol by cached { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(firSymbol) } - - override val origin: KtSymbolOrigin = withValidityAssertion { firSymbol.fir.ktSymbolOrigin() } + override val owningCallableSymbol: KtCallableSymbol by cached { builder.callableBuilder.buildCallableSymbol(firSymbol) } context(KtAnalysisSession) override fun createPointer(): KtSymbolPointer = withValidityAssertion { @@ -56,6 +53,9 @@ internal class KtFirReceiverParameterSymbol( } override val annotationsList: KtAnnotationsList by cached { - KtFirAnnotationListForReceiverParameter.create(firSymbol, builder = analysisSession.firSymbolBuilder) + KtFirAnnotationListForReceiverParameter.create(firSymbol, builder) } + + override fun equals(other: Any?): Boolean = symbolEquals(other) + override fun hashCode(): Int = symbolHashCode() }