[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:
+3
-2
@@ -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 {
|
||||
|
||||
+3
-2
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
||||
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.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
|
||||
@@ -22,8 +23,8 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: FirKotli
|
||||
override val symbolProvider: FirSymbolProvider = SymbolProvider()
|
||||
|
||||
override fun getFirCallableContainerFile(symbol: FirCallableSymbol<*>): FirFile? {
|
||||
symbol.originalIfFakeOverride()?.let {
|
||||
return getFirCallableContainerFile(it)
|
||||
symbol.originalIfFakeOverride()?.let { originalSymbol ->
|
||||
return originalSymbol.moduleData.session.firProvider.getFirCallableContainerFile(originalSymbol)
|
||||
}
|
||||
if (symbol is FirBackingFieldSymbol) {
|
||||
return getFirCallableContainerFile(symbol.fir.propertySymbol)
|
||||
|
||||
Reference in New Issue
Block a user