[AA] Register library and builtins session factories in Standalone AA Builder

This commit is contained in:
Dmitriy Novozhilov
2022-07-20 14:40:20 +03:00
parent efc443e7ef
commit 669e7e071c
3 changed files with 6 additions and 5 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtu
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.FirSealedClassInheritorsProcessorFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.services.PackagePartProviderFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirBuiltinsSessionFactory
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirLibrarySessionFactory
import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProvider
import org.jetbrains.kotlin.analysis.project.structure.KtModuleScopeProviderImpl
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.platform.jvm.isJvm
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
@OptIn(PrivateSessionConstructor::class, SessionConfiguration::class)
class LLFirBuiltinsSessionFactory(
class LLFirBuiltinsSessionFactory(
private val project: Project,
) {
private val builtInTypes = BuiltinTypes() // TODO should be platform-specific
@@ -79,4 +79,4 @@ private fun TargetPlatform.getAnalyzerServices() = when {
// isNative() -> NativePlatformAnalyzerServices
isCommon() -> CommonPlatformAnalyzerServices
else -> JvmPlatformAnalyzerServices/*TODO*/
}
}
@@ -30,11 +30,11 @@ import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
@OptIn(PrivateSessionConstructor::class, SessionConfiguration::class)
internal class LLFirLibrarySessionFactory(
class LLFirLibrarySessionFactory(
private val project: Project,
) {
fun getLibrarySession(ktBinaryModule: KtBinaryModule, sessionsCache: MutableMap<KtModule, LLFirSession>): LLFirLibrarySession {
internal fun getLibrarySession(ktBinaryModule: KtBinaryModule, sessionsCache: MutableMap<KtModule, LLFirSession>): LLFirLibrarySession {
return sessionsCache.getOrPut(ktBinaryModule) { createModuleLibrariesSession(ktBinaryModule) } as LLFirLibrarySession
}
@@ -81,4 +81,4 @@ internal class LLFirLibrarySessionFactory(
project.getService(LLFirLibrarySessionFactory::class.java)
}
}
}