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) @OptIn(SessionConfiguration::class)
fun FirSession.registerThreadUnsafeCaches() { fun FirSession.registerCliCompilerOnlyComponents() {
register(FirCachesFactory::class, FirThreadUnsafeCachesFactory) register(FirCachesFactory::class, FirThreadUnsafeCachesFactory)
}
@OptIn(SessionConfiguration::class)
fun FirSession.registerSealedClassInheritorsProvider() {
register(SealedClassInheritorsProvider::class, SealedClassInheritorsProviderImpl) register(SealedClassInheritorsProvider::class, SealedClassInheritorsProviderImpl)
}
@OptIn(SessionConfiguration::class)
fun FirSession.registerFirCliPhaseManager() {
register(FirPhaseManager::class, FirPhaseCheckingPhaseManager) register(FirPhaseManager::class, FirPhaseCheckingPhaseManager)
} }
@@ -73,12 +73,10 @@ object FirSessionFactory {
init: FirSessionConfigurator.() -> Unit = {} init: FirSessionConfigurator.() -> Unit = {}
): FirJavaModuleBasedSession { ): FirJavaModuleBasedSession {
return FirJavaModuleBasedSession(moduleInfo, sessionProvider).apply { return FirJavaModuleBasedSession(moduleInfo, sessionProvider).apply {
registerThreadUnsafeCaches() registerCliCompilerOnlyComponents()
registerFirCliPhaseManager()
registerCommonComponents(languageVersionSettings) registerCommonComponents(languageVersionSettings)
registerResolveComponents(lookupTracker) registerResolveComponents(lookupTracker)
registerJavaSpecificResolveComponents() registerJavaSpecificResolveComponents()
registerSealedClassInheritorsProvider()
val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped) val kotlinScopeProvider = KotlinScopeProvider(::wrapScopeWithJvmMapped)
@@ -127,10 +125,8 @@ object FirSessionFactory {
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT, languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
): FirLibrarySession { ): FirLibrarySession {
return FirLibrarySession(moduleInfo, sessionProvider).apply { return FirLibrarySession(moduleInfo, sessionProvider).apply {
registerThreadUnsafeCaches() registerCliCompilerOnlyComponents()
registerFirCliPhaseManager()
registerCommonComponents(languageVersionSettings) registerCommonComponents(languageVersionSettings)
registerSealedClassInheritorsProvider()
val javaSymbolProvider = JavaSymbolProvider(this, project, scope) val javaSymbolProvider = JavaSymbolProvider(this, project, scope)