[FIR] Extract FirSessionConfigurator and IncrementalCompilationContext to separated classes

With FirSessionFactory and FirJsSessionFactory
This commit is contained in:
Ivan Kochurkin
2022-06-23 12:55:31 +03:00
parent 94527e24e8
commit 2f56b29b3f
11 changed files with 86 additions and 61 deletions
@@ -48,6 +48,7 @@ import org.jetbrains.kotlin.fir.pipeline.runResolution
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.session.FirSessionFactory
import org.jetbrains.kotlin.fir.session.FirSessionFactory.createSessionWithDependencies
import org.jetbrains.kotlin.fir.session.IncrementalCompilationContext
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
import org.jetbrains.kotlin.fir.types.arrayElementType
@@ -315,7 +316,7 @@ object FirKotlinToJvmBytecodeCompiler {
private fun CompilationContext.createComponentsForIncrementalCompilation(
sourceScope: AbstractProjectFileSearchScope
): FirSessionFactory.IncrementalCompilationContext? {
): IncrementalCompilationContext? {
if (targetIds == null || incrementalComponents == null) return null
val directoryWithIncrementalPartsFromPreviousCompilation =
moduleConfiguration[JVMConfigurationKeys.OUTPUT_DIRECTORY]
@@ -329,7 +330,7 @@ object FirKotlinToJvmBytecodeCompiler {
projectEnvironment.getPackagePartProvider(sourceScope),
targetIds.map(incrementalComponents::getIncrementalCache)
)
return FirSessionFactory.IncrementalCompilationContext(emptyList(), packagePartProvider, incrementalCompilationScope)
return IncrementalCompilationContext(emptyList(), packagePartProvider, incrementalCompilationScope)
}
private fun CompilationContext.runBackend(
@@ -59,6 +59,7 @@ import org.jetbrains.kotlin.fir.pipeline.runCheckers
import org.jetbrains.kotlin.fir.pipeline.runResolution
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.session.FirSessionFactory
import org.jetbrains.kotlin.fir.session.IncrementalCompilationContext
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
@@ -427,7 +428,7 @@ private fun createContextForIncrementalCompilation(
sourceScope: AbstractProjectFileSearchScope,
previousStepsSymbolProviders: List<FirSymbolProvider>,
incrementalExcludesScope: AbstractProjectFileSearchScope?,
): FirSessionFactory.IncrementalCompilationContext? {
): IncrementalCompilationContext? {
val targetIds = compilerConfiguration.get(JVMConfigurationKeys.MODULES)?.map(::TargetId)
val incrementalComponents = compilerConfiguration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS)
if (targetIds == null || incrementalComponents == null) return null
@@ -440,7 +441,7 @@ private fun createContextForIncrementalCompilation(
}
return if (incrementalCompilationScope == null && previousStepsSymbolProviders.isEmpty()) null
else FirSessionFactory.IncrementalCompilationContext(
else IncrementalCompilationContext(
previousStepsSymbolProviders, IncrementalPackagePartProvider(
projectEnvironment.getPackagePartProvider(sourceScope),
targetIds.map(incrementalComponents::getIncrementalCache)