[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
This commit is contained in:
Dmitrii Gridin
2023-07-14 16:57:01 +02:00
committed by Space Team
parent bdb534c3de
commit 38b55c659b
@@ -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 =