[FIR] Cleanup IC provider creation in FirSessionFactory

This commit is contained in:
Dmitriy Novozhilov
2021-05-19 16:28:56 +03:00
committed by TeamCityServer
parent 6d38a236c1
commit 6e4cc49f1d
5 changed files with 15 additions and 13 deletions
@@ -90,6 +90,15 @@ object FirKotlinToJvmBytecodeCompiler {
val librariesScope = ProjectScope.getLibrariesScope(project) val librariesScope = ProjectScope.getLibrariesScope(project)
val providerAndScopeForIncrementalCompilation = run {
if (targetIds == null || incrementalComponents == null) return@run null
val packagePartProvider = IncrementalPackagePartProvider(
environment.createPackagePartProvider(sourceScope),
targetIds.map(incrementalComponents::getIncrementalCache)
)
FirSessionFactory.ProviderAndScopeForIncrementalCompilation(packagePartProvider, librariesScope)
}
val languageVersionSettings = moduleConfiguration.languageVersionSettings val languageVersionSettings = moduleConfiguration.languageVersionSettings
val session = createSessionWithDependencies( val session = createSessionWithDependencies(
Name.identifier(module.getModuleName()), Name.identifier(module.getModuleName()),
@@ -101,15 +110,8 @@ object FirKotlinToJvmBytecodeCompiler {
sourceScope, sourceScope,
librariesScope, librariesScope,
lookupTracker = environment.configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER), lookupTracker = environment.configuration.get(CommonConfigurationKeys.LOOKUP_TRACKER),
providerAndScopeForIncrementalCompilation,
getPackagePartProvider = { environment.createPackagePartProvider(it) }, getPackagePartProvider = { environment.createPackagePartProvider(it) },
getProviderAndScopeForIncrementalCompilation = get@{
if (targetIds == null || incrementalComponents == null) return@get null
val packagePartProvider = IncrementalPackagePartProvider(
environment.createPackagePartProvider(sourceScope),
targetIds.map(incrementalComponents::getIncrementalCache)
)
FirSessionFactory.ProviderAndScopeForIncrementalCompilation(packagePartProvider, librariesScope)
},
dependenciesConfigurator = { dependenciesConfigurator = {
dependencies(moduleConfiguration.jvmClasspathRoots.map { it.toPath() }) dependencies(moduleConfiguration.jvmClasspathRoots.map { it.toPath() })
friendDependencies(moduleConfiguration[JVMConfigurationKeys.FRIEND_PATHS] ?: emptyList()) friendDependencies(moduleConfiguration[JVMConfigurationKeys.FRIEND_PATHS] ?: emptyList())
@@ -84,8 +84,8 @@ object FirSessionFactory {
sourceScope: GlobalSearchScope, sourceScope: GlobalSearchScope,
librariesScope: GlobalSearchScope, librariesScope: GlobalSearchScope,
lookupTracker: LookupTracker?, lookupTracker: LookupTracker?,
providerAndScopeForIncrementalCompilation: ProviderAndScopeForIncrementalCompilation?,
getPackagePartProvider: (GlobalSearchScope) -> PackagePartProvider, getPackagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
getProviderAndScopeForIncrementalCompilation: () -> ProviderAndScopeForIncrementalCompilation?,
dependenciesConfigurator: DependencyListForCliModule.Builder.() -> Unit = {}, dependenciesConfigurator: DependencyListForCliModule.Builder.() -> Unit = {},
noinline sessionConfigurator: FirSessionConfigurator.() -> Unit = {}, noinline sessionConfigurator: FirSessionConfigurator.() -> Unit = {},
): FirSession { ): FirSession {
@@ -113,7 +113,7 @@ object FirSessionFactory {
sessionProvider, sessionProvider,
sourceScope, sourceScope,
project, project,
providerAndScopeForIncrementalCompilation = getProviderAndScopeForIncrementalCompilation(), providerAndScopeForIncrementalCompilation,
languageVersionSettings = languageVersionSettings, languageVersionSettings = languageVersionSettings,
lookupTracker = lookupTracker, lookupTracker = lookupTracker,
init = sessionConfigurator init = sessionConfigurator
@@ -76,8 +76,8 @@ class FirFrontendFacade(
sourcesScope, sourcesScope,
librariesScope, librariesScope,
lookupTracker = null, lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
getPackagePartProvider = packagePartProviderFactory, getPackagePartProvider = packagePartProviderFactory,
getProviderAndScopeForIncrementalCompilation = { null },
dependenciesConfigurator = { dependenciesConfigurator = {
dependencies(configuration.jvmModularRoots.map { it.toPath() }) dependencies(configuration.jvmModularRoots.map { it.toPath() })
dependencies(configuration.jvmClasspathRoots.map { it.toPath() }) dependencies(configuration.jvmClasspathRoots.map { it.toPath() })
@@ -90,8 +90,8 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
sourceScope = scope, sourceScope = scope,
librariesScope = allProjectScope, librariesScope = allProjectScope,
lookupTracker = null, lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
getPackagePartProvider = { environment.createPackagePartProvider(it) }, getPackagePartProvider = { environment.createPackagePartProvider(it) },
getProviderAndScopeForIncrementalCompilation = { null },
) { ) {
configureSession() configureSession()
getFirExtensions()?.let { getFirExtensions()?.let {
@@ -52,8 +52,8 @@ fun createSessionForTests(
sourceScope, sourceScope,
librariesScope, librariesScope,
lookupTracker = null, lookupTracker = null,
providerAndScopeForIncrementalCompilation = null,
getPackagePartProvider, getPackagePartProvider,
getProviderAndScopeForIncrementalCompilation = { null },
dependenciesConfigurator = { dependenciesConfigurator = {
friendDependencies(friendsPaths) friendDependencies(friendsPaths)
} }