FIR IDE: make KtSymbolProvider.getSymbol work for library symbols
This commit is contained in:
committed by
Ilya Kirillov
parent
954926e0de
commit
0ade231898
+1
-1
@@ -91,5 +91,5 @@ internal class FirModuleResolveStateDepended(
|
|||||||
|
|
||||||
@OptIn(InternalForInline::class)
|
@OptIn(InternalForInline::class)
|
||||||
override fun findSourceFirCompiledDeclaration(ktDeclaration: KtDeclaration) =
|
override fun findSourceFirCompiledDeclaration(ktDeclaration: KtDeclaration) =
|
||||||
originalState.findSourceFirDeclaration(ktDeclaration)
|
originalState.findSourceFirCompiledDeclaration(ktDeclaration)
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -6,19 +6,20 @@
|
|||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.api
|
package org.jetbrains.kotlin.analysis.low.level.api.fir.api
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
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.FirIdeResolveStateService
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.annotations.InternalForInline
|
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.low.level.api.fir.lazy.resolve.ResolveType
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
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.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.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtLambdaExpression
|
import org.jetbrains.kotlin.psi.KtLambdaExpression
|
||||||
import kotlin.reflect.KClass
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns [FirModuleResolveState] which corresponds to containing module
|
* Returns [FirModuleResolveState] which corresponds to containing module
|
||||||
@@ -48,7 +49,7 @@ inline fun <R> KtDeclaration.withFirDeclaration(
|
|||||||
phase: FirResolvePhase = FirResolvePhase.RAW_FIR,
|
phase: FirResolvePhase = FirResolvePhase.RAW_FIR,
|
||||||
action: (FirDeclaration) -> R
|
action: (FirDeclaration) -> R
|
||||||
): R {
|
): R {
|
||||||
val firDeclaration = if (containingKtFile.isCompiled) {
|
val firDeclaration = if (getKtModule(project) !is KtSourceModule) {
|
||||||
resolveState.findSourceFirCompiledDeclaration(this)
|
resolveState.findSourceFirCompiledDeclaration(this)
|
||||||
} else {
|
} else {
|
||||||
resolveState.findSourceFirDeclaration(this)
|
resolveState.findSourceFirDeclaration(this)
|
||||||
|
|||||||
Reference in New Issue
Block a user