From d475371394da7ea3876728eb34709f9093fbf095 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 28 Feb 2024 16:39:52 +0100 Subject: [PATCH] FIR: remove default parameter values from FirJvmSessionFactory Most of them are passed at all call sites anyway. Having default values makes it easy to forget to pass some meaningful argument (especially `LanguageVersionSettingsImpl.DEFAULT` seems scary), and complicates refactoring. --- .../kotlin/fir/session/FirJvmSessionFactory.kt | 16 ++++++++-------- .../fir/session/FirSessionFactoryHelper.kt | 4 +++- .../test/frontend/fir/FirFrontendFacade.kt | 9 ++++++--- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmSessionFactory.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmSessionFactory.kt index 4d473c644ea..b17c86961ed 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmSessionFactory.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmSessionFactory.kt @@ -40,7 +40,7 @@ object FirJvmSessionFactory : FirAbstractSessionFactory() { scope: AbstractProjectFileSearchScope, packagePartProvider: PackagePartProvider, languageVersionSettings: LanguageVersionSettings, - predefinedJavaComponents: FirSharableJavaComponents? = null, + predefinedJavaComponents: FirSharableJavaComponents?, registerExtraComponents: ((FirSession) -> Unit), ): FirSession { return createLibrarySession( @@ -87,14 +87,14 @@ object FirJvmSessionFactory : FirAbstractSessionFactory() { projectEnvironment: AbstractProjectEnvironment, createIncrementalCompilationSymbolProviders: (FirSession) -> FirJvmIncrementalCompilationSymbolProviders?, extensionRegistrars: List, - languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT, - lookupTracker: LookupTracker? = null, - enumWhenTracker: EnumWhenTracker? = null, - importTracker: ImportTracker? = null, - predefinedJavaComponents: FirSharableJavaComponents? = null, + languageVersionSettings: LanguageVersionSettings, + lookupTracker: LookupTracker?, + enumWhenTracker: EnumWhenTracker?, + importTracker: ImportTracker?, + predefinedJavaComponents: FirSharableJavaComponents?, needRegisterJavaElementFinder: Boolean, - registerExtraComponents: ((FirSession) -> Unit) = {}, - init: FirSessionConfigurator.() -> Unit = {} + registerExtraComponents: ((FirSession) -> Unit), + init: FirSessionConfigurator.() -> Unit, ): FirSession { return createModuleBasedSession( moduleData, diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactoryHelper.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactoryHelper.kt index 1368618a1a4..f61716b4f46 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactoryHelper.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirSessionFactoryHelper.kt @@ -59,6 +59,7 @@ object FirSessionFactoryHelper { librariesScope, packagePartProvider, languageVersionSettings, + predefinedJavaComponents = null, registerExtraComponents = {}, ) @@ -81,7 +82,8 @@ object FirSessionFactoryHelper { lookupTracker, enumWhenTracker, importTracker, - needRegisterJavaElementFinder = needRegisterJavaElementFinder, + predefinedJavaComponents = null, + needRegisterJavaElementFinder, registerExtraComponents = {}, init = sessionConfigurator, ) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt index 3a3bdcfb69b..10c270deda0 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt @@ -85,7 +85,7 @@ open class FirFrontendFacade( } } - fun registerExtraComponents(session: FirSession) { + private fun registerExtraComponents(session: FirSession) { testServices.firSessionComponentRegistrar?.registerAdditionalComponent(session) } @@ -214,7 +214,7 @@ open class FirFrontendFacade( projectFileSearchScope, packagePartProvider, languageVersionSettings, - predefinedJavaComponents = predefinedJavaComponents, + predefinedJavaComponents, registerExtraComponents = ::registerExtraComponents, ) } @@ -367,7 +367,10 @@ open class FirFrontendFacade( createIncrementalCompilationSymbolProviders = { null }, extensionRegistrars, languageVersionSettings, - predefinedJavaComponents = predefinedJavaComponents, + lookupTracker = null, + enumWhenTracker = null, + importTracker = null, + predefinedJavaComponents, needRegisterJavaElementFinder = true, registerExtraComponents = ::registerExtraComponents, init = sessionConfigurator,