diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirProvider.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirProvider.kt index 22e9f3ab421..fb07be3eacb 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirProvider.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirProvider.kt @@ -84,11 +84,15 @@ internal class LLFirProvider( symbol.fir.originalForSubstitutionOverride?.symbol?.let { originalSymbol -> return originalSymbol.moduleData.session.firProvider.getFirCallableContainerFile(originalSymbol) } + val fir = symbol.fir return when { symbol is FirBackingFieldSymbol -> getFirCallableContainerFile(symbol.fir.propertySymbol) symbol is FirSyntheticPropertySymbol && fir is FirSyntheticProperty -> getFirCallableContainerFile(fir.getter.delegate.symbol) - else -> moduleComponents.cache.getContainerFirFile(symbol.fir) + else -> { + symbol.callableId.classId?.let { SyntheticFirClassProvider.getInstance(session).getFirClassifierContainerFileIfAny(it) } + ?: moduleComponents.cache.getContainerFirFile(symbol.fir) + } } }