JVM_IR: reorganize initialization of JvmGeneratorExtensionsImpl

CachedFields are now created at initialization.
Therefore we need CompilerConfiguration as a constructor parameter.
This commit is contained in:
Georgy Bronnikov
2021-06-07 17:52:17 +03:00
committed by TeamCityServer
parent 7bbc04b6a2
commit 20b76d4149
12 changed files with 36 additions and 42 deletions
@@ -6,13 +6,11 @@
package org.jetbrains.kotlin.test.frontend.classic
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.jvm.JvmGeneratorExtensionsImpl
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
import org.jetbrains.kotlin.backend.jvm.jvmPhases
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.codegen.ClassBuilderFactories
import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
import org.jetbrains.kotlin.test.model.BackendKinds
@@ -39,10 +37,7 @@ class ClassicFrontend2IrConverter(
val files = psiFiles.values.toList()
val phaseConfig = configuration.get(CLIConfigurationKeys.PHASE_CONFIG) ?: PhaseConfig(jvmPhases)
val codegenFactory = JvmIrCodegenFactory(
phaseConfig,
jvmGeneratorExtensions = JvmGeneratorExtensionsImpl(irDeserializationEnabled = configuration.getBoolean(JVMConfigurationKeys.SERIALIZE_IR))
)
val codegenFactory = JvmIrCodegenFactory(configuration, phaseConfig)
val state = GenerationState.Builder(
project, ClassBuilderFactories.TEST, analysisResult.moduleDescriptor, analysisResult.bindingContext,
files, configuration
@@ -41,15 +41,15 @@ class Fir2IrResultsConverter(
module: TestModule,
inputArtifact: FirOutputArtifact
): IrBackendInput {
val extensions = JvmGeneratorExtensionsImpl()
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
val configuration = compilerConfigurationProvider.getCompilerConfiguration(module)
val extensions = JvmGeneratorExtensionsImpl(configuration)
val (irModuleFragment, symbolTable, components) = inputArtifact.firAnalyzerFacade.convertToIr(extensions)
val dummyBindingContext = NoScopeRecordCliBindingTrace().bindingContext
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
val configuration = compilerConfigurationProvider.getCompilerConfiguration(module)
val phaseConfig = configuration.get(CLIConfigurationKeys.PHASE_CONFIG) ?: PhaseConfig(jvmPhases)
val codegenFactory = JvmIrCodegenFactory(phaseConfig)
val codegenFactory = JvmIrCodegenFactory(configuration, phaseConfig, jvmGeneratorExtensions = extensions)
// TODO: handle fir from light tree
val ktFiles = inputArtifact.firFiles.values.mapNotNull { it.psi as KtFile? }