diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendFacade.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt similarity index 89% rename from compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendFacade.kt rename to compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt index c0c93b6ee15..df594690abb 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendFacade.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen import org.jetbrains.kotlin.backend.jvm.codegen.DescriptorMetadataSerializer import org.jetbrains.kotlin.backend.jvm.lower.MultifileFacadeFileEntry import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor +import org.jetbrains.kotlin.codegen.CodegenFactory import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.descriptors.ModuleDescriptor @@ -39,8 +40,8 @@ import org.jetbrains.kotlin.psi2ir.PsiSourceManager import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.CleanableBindingContext -object JvmBackendFacade { - fun doGenerateFiles(files: Collection, state: GenerationState, phaseConfig: PhaseConfig) { +class JvmIrCodegenFactory(private val phaseConfig: PhaseConfig) : CodegenFactory { + override fun generateModule(state: GenerationState, files: Collection) { val extensions = JvmGeneratorExtensions() val mangler = JvmManglerDesc(MainFunctionDetector(state.bindingContext, state.languageVersionSettings)) val psi2ir = Psi2IrTranslator(state.languageVersionSettings, Psi2IrConfiguration()) @@ -170,4 +171,22 @@ object JvmBackendFacade { // and clear `JvmBackendContext.classCodegens` state.afterIndependentPart() } + + fun generateModuleInFrontendIRMode( + state: GenerationState, + irModuleFragment: IrModuleFragment, + symbolTable: SymbolTable, + sourceManager: PsiSourceManager, + serializerFactory: MetadataSerializerFactory, + ) { + irModuleFragment.irBuiltins.functionFactory = IrFunctionFactory(irModuleFragment.irBuiltins, symbolTable) + val extensions = JvmGeneratorExtensions() + val irProviders = generateTypicalIrProviderList( + irModuleFragment.descriptor, irModuleFragment.irBuiltins, symbolTable, extensions = extensions + ) + + doGenerateFilesInternal( + state, irModuleFragment, symbolTable, sourceManager, phaseConfig, irProviders, extensions, serializerFactory + ) + } } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory_.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory_.kt deleted file mode 100644 index a8d884a82b9..00000000000 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmIrCodegenFactory_.kt +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.backend.jvm - -import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig -import org.jetbrains.kotlin.codegen.CodegenFactory -import org.jetbrains.kotlin.codegen.state.GenerationState -import org.jetbrains.kotlin.ir.declarations.IrModuleFragment -import org.jetbrains.kotlin.ir.descriptors.IrFunctionFactory -import org.jetbrains.kotlin.ir.util.SymbolTable -import org.jetbrains.kotlin.ir.util.generateTypicalIrProviderList -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.psi2ir.PsiSourceManager - -class JvmIrCodegenFactory(private val phaseConfig: PhaseConfig) : CodegenFactory { - override fun generateModule(state: GenerationState, files: Collection) { - JvmBackendFacade.doGenerateFiles(files, state, phaseConfig) - } - - fun generateModuleInFrontendIRMode( - state: GenerationState, - irModuleFragment: IrModuleFragment, - symbolTable: SymbolTable, - sourceManager: PsiSourceManager, - serializerFactory: MetadataSerializerFactory, - ) { - irModuleFragment.irBuiltins.functionFactory = IrFunctionFactory(irModuleFragment.irBuiltins, symbolTable) - val extensions = JvmGeneratorExtensions() - val irProviders = generateTypicalIrProviderList( - irModuleFragment.descriptor, irModuleFragment.irBuiltins, symbolTable, extensions = extensions - ) - - JvmBackendFacade.doGenerateFilesInternal( - state, irModuleFragment, symbolTable, sourceManager, phaseConfig, irProviders, extensions, serializerFactory - ) - } -}