IR: a flag to GeneratorExtensions to control IR deserialization

There is no need to search for IR embedded in toplevel classes when none
is expected (in npon-JVM backends or when -Xserialize-ir is not set).
This commit is contained in:
Georgy Bronnikov
2021-05-26 00:21:16 +03:00
committed by TeamCityServer
parent ec1c97c684
commit 1c4466951f
5 changed files with 17 additions and 7 deletions
@@ -6,11 +6,13 @@
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
@@ -37,7 +39,10 @@ class ClassicFrontend2IrConverter(
val files = psiFiles.values.toList()
val phaseConfig = configuration.get(CLIConfigurationKeys.PHASE_CONFIG) ?: PhaseConfig(jvmPhases)
val codegenFactory = JvmIrCodegenFactory(phaseConfig)
val codegenFactory = JvmIrCodegenFactory(
phaseConfig,
jvmGeneratorExtensions = JvmGeneratorExtensionsImpl(irDeserializationEnabled = configuration.getBoolean(JVMConfigurationKeys.SERIALIZE_IR))
)
val state = GenerationState.Builder(
project, ClassBuilderFactories.TEST, analysisResult.moduleDescriptor, analysisResult.bindingContext,
files, configuration