K2 Tests. Do not use the TopDownAnalyzerFacadeForJVM to create module descriptor
In fact, TopDownAnalyzerFacadeForJVM.createContainer initializes the
whole K1 frontend. While it is only used to create a module descriptor
for GenerationState.Builder, in real K2 compiler the module descriptor
would be created via irModuleFragment.
See org.jetbrains.kotlin.cli.jvm.compiler.pipeline.CompilerPipelineKt.generateCodeFromIr
diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt
index 39426c1..3c4fafc 100644
--- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJvmResultsConverter.kt
@@ -73,14 +73,7 @@
// Create and initialize the module and its dependencies
val project = compilerConfigurationProvider.getProject(module)
// TODO: handle fir from light tree
- val ktFiles = inputArtifact.mainFirFiles.mapNotNull { it.value.psi as KtFile? }
val sourceFiles = inputArtifact.mainFirFiles.mapNotNull { it.value.sourceFile }
- val container = TopDownAnalyzerFacadeForJVM.createContainer(
- project, ktFiles, NoScopeRecordCliBindingTrace(), configuration,
- compilerConfigurationProvider.getPackagePartProviderFactory(module),
- ::FileBasedDeclarationProviderFactory, CompilerEnvironment,
- TopDownAnalyzerFacadeForJVM.newModuleSearchScope(project, ktFiles), emptyList()
- )
val phaseConfig = configuration.get(CLIConfigurationKeys.PHASE_CONFIG)
@@ -128,7 +121,7 @@
val codegenFactory = JvmIrCodegenFactory(configuration, phaseConfig)
val generationState = GenerationState.Builder(
project, ClassBuilderFactories.TEST,
- container.get(), NoScopeRecordCliBindingTrace().bindingContext, configuration
+ fir2irResult.irModuleFragment.descriptor, NoScopeRecordCliBindingTrace().bindingContext, configuration
).isIrBackend(
true
).jvmBackendClassResolver(