diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt index 99d6a440006..c417453f53a 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/FirKotlinToJvmBytecodeCompiler.kt @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.container.get +import org.jetbrains.kotlin.diagnostics.Severity import org.jetbrains.kotlin.fir.analysis.FirAnalyzerFacade import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension @@ -46,10 +47,18 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus import org.jetbrains.kotlin.resolve.CompilerEnvironment +import org.jetbrains.kotlin.resolve.diagnostics.SimpleGenericDiagnostics import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices -import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory import org.jetbrains.kotlin.utils.newLinkedHashMapWithExpectedSize import java.io.File +import kotlin.collections.List +import kotlin.collections.any +import kotlin.collections.emptyList +import kotlin.collections.flatten +import kotlin.collections.fold +import kotlin.collections.isNotEmpty +import kotlin.collections.map +import kotlin.collections.set object FirKotlinToJvmBytecodeCompiler { fun compileModulesUsingFrontendIR( @@ -171,16 +180,9 @@ object FirKotlinToJvmBytecodeCompiler { jvmGeneratorExtensions = extensions ) - // Create and initialize the module and its dependencies - val container = TopDownAnalyzerFacadeForJVM.createContainer( - project, ktFiles, NoScopeRecordCliBindingTrace(), environment.configuration, environment::createPackagePartProvider, - ::FileBasedDeclarationProviderFactory, CompilerEnvironment, - TopDownAnalyzerFacadeForJVM.newModuleSearchScope(project, ktFiles), emptyList() - ) - val generationState = GenerationState.Builder( environment.project, ClassBuilderFactories.BINARIES, - container.get(), dummyBindingContext, ktFiles, + moduleFragment.descriptor, dummyBindingContext, ktFiles, moduleConfiguration ).codegenFactory( codegenFactory diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt index 7a80565e6aa..406e0cc347d 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/codegen/GenerationUtils.kt @@ -30,8 +30,6 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.config.languageVersionSettings -import org.jetbrains.kotlin.container.get -import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.fir.analysis.FirAnalyzerFacade import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension @@ -41,9 +39,7 @@ import org.jetbrains.kotlin.load.kotlin.PackagePartProvider import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.AnalyzingUtils import org.jetbrains.kotlin.resolve.BindingTrace -import org.jetbrains.kotlin.resolve.CompilerEnvironment import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil -import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory import org.jetbrains.kotlin.util.DummyLogger import org.jetbrains.kotlin.util.Logger import java.io.File @@ -80,7 +76,7 @@ object GenerationUtils { ): GenerationState { val project = files.first().project val state = if (configuration.getBoolean(CommonConfigurationKeys.USE_FIR)) { - compileFilesUsingFrontendIR(project, files, configuration, classBuilderFactory, packagePartProvider, trace) + compileFilesUsingFrontendIR(project, files, configuration, classBuilderFactory, packagePartProvider) } else { compileFilesUsingStandardMode(project, files, configuration, classBuilderFactory, packagePartProvider, trace) } @@ -101,8 +97,7 @@ object GenerationUtils { files: List, configuration: CompilerConfiguration, classBuilderFactory: ClassBuilderFactory, - packagePartProvider: (GlobalSearchScope) -> PackagePartProvider, - trace: BindingTrace + packagePartProvider: (GlobalSearchScope) -> PackagePartProvider ): GenerationState { PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java) @@ -123,13 +118,8 @@ object GenerationUtils { jvmGeneratorExtensions = extensions ) - // Create and initialize the test module and its dependencies - val container = TopDownAnalyzerFacadeForJVM.createContainer( - project, files, trace, configuration, packagePartProvider, ::FileBasedDeclarationProviderFactory, CompilerEnvironment, - TopDownAnalyzerFacadeForJVM.newModuleSearchScope(project, files), emptyList() - ) val generationState = GenerationState.Builder( - project, classBuilderFactory, container.get(), dummyBindingContext, files, configuration + project, classBuilderFactory, moduleFragment.descriptor, dummyBindingContext, files, configuration ).codegenFactory( codegenFactory ).isIrBackend(