From 8c2f1acc7ecf1d3b37243dc4f7b748caa4e2aefa Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 14 Jun 2023 15:13:18 +0200 Subject: [PATCH] [LL] take originalDeclaration when exists to detect module kind Fixes KTIJ-24609. When completion happens outside the content root, module kind should be detected by the original file. Otherwise, module would not be the same because outside the content root, each file has its own module. Actual #findSourceFirSymbol also does search over originalDeclaration when present. Added FirCompletionOutsideSourceRootTest in IJ monorepo --- .../low/level/api/fir/state/LLFirResolvableResolveSession.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableResolveSession.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableResolveSession.kt index 12fc32c823d..af111b3f842 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableResolveSession.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/state/LLFirResolvableResolveSession.kt @@ -101,7 +101,7 @@ internal abstract class LLFirResolvableResolveSession( ktDeclaration: KtDeclaration, phase: FirResolvePhase ): FirBasedSymbol<*> { - val module = getModule(ktDeclaration) + val module = getModule(ktDeclaration.originalDeclaration ?: ktDeclaration) retryOnInvalidSession { return when (getModuleKind(module)) { ModuleKind.RESOLVABLE_MODULE -> findSourceFirSymbol(ktDeclaration, module).also { resolveFirToPhase(it.fir, phase) }