From 38b55c659b264e70a06430d1a6ca01aaae773a87 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Fri, 14 Jul 2023 16:57:01 +0200 Subject: [PATCH] [LL FIR] LLFirResolveSessionDepended: add missing mapping for resolveToFirSymbol We should try to find a declaration from our mapping firstly Otherwise we can find an invalid element ^KT-60451 Fixed --- .../low/level/api/fir/LLFirResolveSessionDepended.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveSessionDepended.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveSessionDepended.kt index cd16b8c995c..c8a0ccde08a 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveSessionDepended.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveSessionDepended.kt @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.analysis.low.level.api.fir.util.originalDeclaration internal class LLFirResolveSessionDepended( val originalFirResolveSession: LLFirResolvableResolveSession, @@ -78,7 +79,10 @@ internal class LLFirResolveSessionDepended( TODO("Diagnostics are not implemented for depended state") override fun resolveToFirSymbol(ktDeclaration: KtDeclaration, phase: FirResolvePhase): FirBasedSymbol<*> { - return originalFirResolveSession.resolveToFirSymbol(ktDeclaration, phase) + val declarationToResolve = ktDeclaration.originalDeclaration ?: ktDeclaration + ktToFirMapping?.getElement(declarationToResolve)?.let { it as? FirDeclaration }?.symbol?.let { return it } + + return originalFirResolveSession.resolveToFirSymbol(declarationToResolve, phase) } override fun getTowerContextProvider(ktFile: KtFile): FirTowerContextProvider =