From 06095b379ff181f5648fb36c545ebb9edadd6e19 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Thu, 9 Feb 2023 17:18:05 +0100 Subject: [PATCH] [LL API] LLFirProvider: add missing usage of SyntheticFirClassProvider for callable declarations currently on air resolve failed for such declarations ^KT-55750 --- .../analysis/low/level/api/fir/providers/LLFirProvider.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/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) + } } }