From 0ade231898897995c1d5946751836660bc5f4d37 Mon Sep 17 00:00:00 2001 From: Tianyu Geng Date: Tue, 7 Sep 2021 20:20:36 -0700 Subject: [PATCH] FIR IDE: make KtSymbolProvider.getSymbol work for library symbols --- .../level/api/fir/FirModuleResolveStateDepended.kt | 2 +- .../low/level/api/fir/api/LowLevelFirApiFacade.kt | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/FirModuleResolveStateDepended.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/FirModuleResolveStateDepended.kt index b98535c7f5a..c9ca8ccf9b9 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/FirModuleResolveStateDepended.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/FirModuleResolveStateDepended.kt @@ -91,5 +91,5 @@ internal class FirModuleResolveStateDepended( @OptIn(InternalForInline::class) override fun findSourceFirCompiledDeclaration(ktDeclaration: KtDeclaration) = - originalState.findSourceFirDeclaration(ktDeclaration) + originalState.findSourceFirCompiledDeclaration(ktDeclaration) } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacade.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacade.kt index 3336b64c4ba..7b163f4db46 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacade.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacade.kt @@ -6,19 +6,20 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.api import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.fir.FirElement -import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic -import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.analysis.low.level.api.fir.FirIdeResolveStateService import org.jetbrains.kotlin.analysis.low.level.api.fir.annotations.InternalForInline import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.ResolveType import org.jetbrains.kotlin.analysis.project.structure.KtModule +import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule import org.jetbrains.kotlin.analysis.project.structure.getKtModule +import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase +import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtLambdaExpression -import kotlin.reflect.KClass /** * Returns [FirModuleResolveState] which corresponds to containing module @@ -48,7 +49,7 @@ inline fun KtDeclaration.withFirDeclaration( phase: FirResolvePhase = FirResolvePhase.RAW_FIR, action: (FirDeclaration) -> R ): R { - val firDeclaration = if (containingKtFile.isCompiled) { + val firDeclaration = if (getKtModule(project) !is KtSourceModule) { resolveState.findSourceFirCompiledDeclaration(this) } else { resolveState.findSourceFirDeclaration(this)