[FIR IDE] Fix CliFe10AnalysisFacade, so it can be used as a Project component
This commit is contained in:
+7
-5
@@ -26,14 +26,16 @@ import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
class CliFe10AnalysisFacade(project: Project) : Fe10AnalysisFacade {
|
||||
private val handler by lazy { KtFe10AnalysisHandlerExtension.getInstance(project) }
|
||||
|
||||
override val resolveSession: ResolveSession
|
||||
get() = handler.resolveSession ?: error("Resolution is not performed")
|
||||
override fun getResolveSession(element: KtElement): ResolveSession {
|
||||
return handler.resolveSession ?: error("Resolution is not performed")
|
||||
}
|
||||
|
||||
override val deprecationResolver: DeprecationResolver
|
||||
get() = handler.deprecationResolver ?: error("Resolution is not performed")
|
||||
override fun getDeprecationResolver(element: KtElement): DeprecationResolver {
|
||||
return handler.deprecationResolver ?: error("Resolution is not performed")
|
||||
}
|
||||
|
||||
override fun analyze(element: KtElement, mode: Fe10AnalysisFacade.AnalysisMode): BindingContext {
|
||||
return resolveSession.bindingContext
|
||||
return getResolveSession(element).bindingContext
|
||||
}
|
||||
|
||||
override fun getOrigin(file: VirtualFile): KtSymbolOrigin {
|
||||
|
||||
+2
-2
@@ -13,8 +13,8 @@ import org.jetbrains.kotlin.resolve.deprecation.DeprecationResolver
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||
|
||||
interface Fe10AnalysisFacade {
|
||||
val resolveSession: ResolveSession
|
||||
val deprecationResolver: DeprecationResolver
|
||||
fun getResolveSession(element: KtElement): ResolveSession
|
||||
fun getDeprecationResolver(element: KtElement): DeprecationResolver
|
||||
|
||||
fun analyze(element: KtElement, mode: AnalysisMode = AnalysisMode.FULL): BindingContext
|
||||
|
||||
|
||||
+5
@@ -13,6 +13,8 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolProvider
|
||||
import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken
|
||||
import org.jetbrains.kotlin.psi.KtElement
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationResolver
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
|
||||
|
||||
@Suppress("LeakingThis")
|
||||
class KtFe10AnalysisSession(
|
||||
@@ -44,6 +46,9 @@ class KtFe10AnalysisSession(
|
||||
override val jvmTypeMapperImpl: KtJvmTypeMapper = KtFe10JvmTypeMapper(this)
|
||||
override val symbolInfoProviderImpl: KtSymbolInfoProvider = KtFe10SymbolInfoProvider(this)
|
||||
|
||||
val resolveSession: ResolveSession = getResolveSession(contextElement)
|
||||
val deprecationResolver: DeprecationResolver = getDeprecationResolver(contextElement)
|
||||
|
||||
override fun createContextDependentCopy(originalKtFile: KtFile, elementToReanalyze: KtElement): KtAnalysisSession {
|
||||
return KtFe10AnalysisSession(elementToReanalyze, token)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user