FIR: encapsulate creating of cli-only session components into single function

This commit is contained in:
Ilya Kirillov
2021-04-14 13:06:01 +02:00
committed by TeamCityServer
parent 0a80fbb078
commit fee83051e9
2 changed files with 3 additions and 15 deletions
@@ -51,17 +51,9 @@ fun FirSession.registerCommonComponents(languageVersionSettings: LanguageVersion
}
@OptIn(SessionConfiguration::class)
fun FirSession.registerThreadUnsafeCaches() {
fun FirSession.registerCliCompilerOnlyComponents() {
register(FirCachesFactory::class, FirThreadUnsafeCachesFactory)
}
@OptIn(SessionConfiguration::class)
fun FirSession.registerSealedClassInheritorsProvider() {
register(SealedClassInheritorsProvider::class, SealedClassInheritorsProviderImpl)
}
@OptIn(SessionConfiguration::class)
fun FirSession.registerFirCliPhaseManager() {
register(FirPhaseManager::class, FirPhaseCheckingPhaseManager)
}
@@ -73,12 +73,10 @@ object FirSessionFactory {
init: FirSessionConfigurator.() -> Unit = {}
): FirJavaModuleBasedSession {
return FirJavaModuleBasedSession(moduleInfo, sessionProvider).apply {
registerThreadUnsafeCaches()
registerFirCliPhaseManager()
registerCliCompilerOnlyComponents()
registerCommonComponents(languageVersionSettings)
registerResolveComponents(lookupTracker)
registerJavaSpecificResolveComponents()
registerSealedClassInheritorsProvider()
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped)
@@ -127,10 +125,8 @@ object FirSessionFactory {
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
): FirLibrarySession {
return FirLibrarySession(moduleInfo, sessionProvider).apply {
registerThreadUnsafeCaches()
registerFirCliPhaseManager()
registerCliCompilerOnlyComponents()
registerCommonComponents(languageVersionSettings)
registerSealedClassInheritorsProvider()
val javaSymbolProvider = JavaSymbolProvider(this, project, scope)