[LL API] Fix 'getResolvableSessionFor()' for library sessions
This commit is contained in:
+9
-7
@@ -12,10 +12,8 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveCompone
|
|||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getModule
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getModule
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.FirTowerContextProvider
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.FirTowerContextProvider
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.canBePartOfParentDeclaration
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.getNonLocalContainingOrThisDeclaration
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder.getNonLocalContainingOrThisDeclaration
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.retryOnInvalidSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.retryOnInvalidSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.FirElementsRecorder
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionCache
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionCache
|
||||||
@@ -61,16 +59,20 @@ internal abstract class LLFirResolvableResolveSession(
|
|||||||
get() = useSiteFirSessionCached.value
|
get() = useSiteFirSessionCached.value
|
||||||
|
|
||||||
override fun getSessionFor(module: KtModule): LLFirSession {
|
override fun getSessionFor(module: KtModule): LLFirSession {
|
||||||
|
return getSession(module, preferBinary = true)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getResolvableSessionFor(module: KtModule): LLFirResolvableModuleSession {
|
||||||
|
return getSession(module, preferBinary = false) as LLFirResolvableModuleSession
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getSession(module: KtModule, preferBinary: Boolean): LLFirSession {
|
||||||
if (module == useSiteFirSession.ktModule) {
|
if (module == useSiteFirSession.ktModule) {
|
||||||
return useSiteFirSession
|
return useSiteFirSession
|
||||||
}
|
}
|
||||||
|
|
||||||
val cache = LLFirSessionCache.getInstance(module.project)
|
val cache = LLFirSessionCache.getInstance(module.project)
|
||||||
return cache.getSession(module, preferBinary = true)
|
return cache.getSession(module, preferBinary)
|
||||||
}
|
|
||||||
|
|
||||||
protected open fun getResolvableSessionFor(module: KtModule): LLFirResolvableModuleSession {
|
|
||||||
return getSessionFor(module) as LLFirResolvableModuleSession
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getScopeSessionFor(firSession: FirSession): ScopeSession {
|
override fun getScopeSessionFor(firSession: FirSession): ScopeSession {
|
||||||
|
|||||||
Reference in New Issue
Block a user