[LL API] Seek for the containing file in the right module (KTIJ-22808)

It's not guaranteed that the declaration for which we need a containing
file is from the currently analyzed module.
This commit is contained in:
Yan Zhulanow
2022-10-19 00:02:26 +09:00
committed by teamcity
parent 76931522e0
commit 01009ed75b
2 changed files with 6 additions and 4 deletions
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.originalForSubstitutionOverride
import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
@@ -66,8 +67,8 @@ internal class LLFirProvider(
override fun getFirCallableContainerFile(symbol: FirCallableSymbol<*>): FirFile? {
symbol.fir.originalForSubstitutionOverride?.symbol?.let {
return getFirCallableContainerFile(it)
symbol.fir.originalForSubstitutionOverride?.symbol?.let { originalSymbol ->
return originalSymbol.moduleData.session.firProvider.getFirCallableContainerFile(originalSymbol)
}
val fir = symbol.fir
return when {