From 6e45c9d4c723f7f6b065d7ad9aab38541b281342 Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Sun, 16 Jul 2023 17:10:58 +0200 Subject: [PATCH] [Test] Drop `convertToIr` method from `AbstractFirAnalyzerFacade` We are going to use `convertToIr` from `ModuleCompilerAnalyzedOutput` without an intermediate wrapper. --- .../based/LowLevelFirAnalyzerFacade.kt | 20 +++++------ .../frontend/fir/Fir2IrJsResultsConverter.kt | 26 ++++---------- .../frontend/fir/Fir2IrJvmResultsConverter.kt | 36 +++++++++++++------ .../fir/Fir2IrWasmResultsConverter.kt | 30 +++++----------- .../test/frontend/fir/FirFrontendFacade.kt | 11 ------ .../kotlin/codegen/GenerationUtils.kt | 35 +++++++++--------- .../jetbrains/kotlin/fir/FirAnalyzerFacade.kt | 34 +++--------------- 7 files changed, 72 insertions(+), 120 deletions(-) diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/LowLevelFirAnalyzerFacade.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/LowLevelFirAnalyzerFacade.kt index 9fbb5932bea..8057f8d6001 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/LowLevelFirAnalyzerFacade.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/compiler/based/LowLevelFirAnalyzerFacade.kt @@ -10,11 +10,9 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDiagnosticsForFile import org.jetbrains.kotlin.diagnostics.KtDiagnostic import org.jetbrains.kotlin.fir.AbstractFirAnalyzerFacade -import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage -import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions -import org.jetbrains.kotlin.fir.backend.Fir2IrResult -import org.jetbrains.kotlin.fir.backend.IrBuiltInsOverFir import org.jetbrains.kotlin.fir.declarations.FirFile +import org.jetbrains.kotlin.fir.pipeline.FirResult +import org.jetbrains.kotlin.fir.pipeline.ModuleCompilerAnalyzedOutput import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.psi.KtFile @@ -28,6 +26,12 @@ open class LowLevelFirAnalyzerFacade( override val scopeSession: ScopeSession get() = ScopeSession() + override val result: FirResult + get() { + val output = ModuleCompilerAnalyzedOutput(firResolveSession.useSiteFirSession, scopeSession, allFirFiles.values.toList()) + return FirResult(listOf(output)) + } + private var resolved: Boolean = false override fun runCheckers(): Map> { @@ -45,12 +49,4 @@ open class LowLevelFirAnalyzerFacade( } override fun runResolution(): List = allFirFiles.values.toList() - - override fun convertToIr( - fir2IrExtensions: Fir2IrExtensions, - commonMemberStorage: Fir2IrCommonMemberStorage, - irBuiltIns: IrBuiltInsOverFir? - ): Fir2IrResult = shouldNotBeCalled() } - -private fun shouldNotBeCalled(): Nothing = error("Should not be called for LL test") diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt index 78c55f8d458..a39259dfc8f 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrJsResultsConverter.kt @@ -18,8 +18,6 @@ import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory -import org.jetbrains.kotlin.fir.AbstractFirAnalyzerFacade -import org.jetbrains.kotlin.fir.FirAnalyzerFacade import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.backend.js.FirJsKotlinMangler import org.jetbrains.kotlin.fir.declarations.FirDeclaration @@ -35,7 +33,6 @@ import org.jetbrains.kotlin.ir.backend.js.incrementalDataProvider import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerDesc import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerIr import org.jetbrains.kotlin.ir.declarations.IrModuleFragment -import org.jetbrains.kotlin.ir.util.KotlinMangler import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary import org.jetbrains.kotlin.library.unresolvedDependencies import org.jetbrains.kotlin.storage.LockBasedStorageManager @@ -88,16 +85,12 @@ class Fir2IrJsResultsConverter( for ((index, part) in inputArtifact.partsForDependsOnModules.withIndex()) { val (irModuleFragment, components, pluginContext) = - part.firAnalyzerFacade.convertToJsIr( - part.firFiles.values, - fir2IrExtensions = Fir2IrExtensions.Default, + part.firAnalyzerFacade.result.outputs.single().convertToJsIr( module, configuration, testServices, commonMemberStorage, irBuiltIns, - irMangler, - generateSignatures = true, ) irBuiltIns = components.irBuiltIns mainPluginContext = pluginContext @@ -156,36 +149,31 @@ class Fir2IrJsResultsConverter( } } -fun AbstractFirAnalyzerFacade.convertToJsIr( - firFiles: Collection, - fir2IrExtensions: Fir2IrExtensions, +fun ModuleCompilerAnalyzedOutput.convertToJsIr( module: TestModule, configuration: CompilerConfiguration, testServices: TestServices, commonMemberStorage: Fir2IrCommonMemberStorage, - irBuiltIns: IrBuiltInsOverFir?, - irMangler: KotlinMangler.IrMangler, - generateSignatures: Boolean + irBuiltIns: IrBuiltInsOverFir? ): Fir2IrResult { - this as FirAnalyzerFacade // TODO: consider avoiding repeated libraries resolution val libraries = resolveLibraries(configuration, getAllJsDependenciesPaths(module, testServices)) val (dependencies, builtIns) = loadResolvedLibraries(libraries, configuration.languageVersionSettings, testServices) val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = configuration.languageVersionSettings, - linkViaSignatures = generateSignatures, + linkViaSignatures = true, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), inlineConstTracker = null, ) - return ModuleCompilerAnalyzedOutput(this.session, this.scopeSession, firFiles.toList()).convertToIr( - fir2IrExtensions, + return convertToIr( + Fir2IrExtensions.Default, fir2IrConfiguration, commonMemberStorage, irBuiltIns, - irMangler, + JsManglerIr, Fir2IrVisibilityConverter.Default, builtIns ?: DefaultBuiltIns.Instance // TODO: consider passing externally, ).also { 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 dfba0c89484..99980e99908 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 @@ -7,21 +7,21 @@ package org.jetbrains.kotlin.test.frontend.fir import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl +import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM import org.jetbrains.kotlin.codegen.ClassBuilderFactories import org.jetbrains.kotlin.codegen.state.GenerationState +import org.jetbrains.kotlin.config.CommonConfigurationKeys +import org.jetbrains.kotlin.config.JVMConfigurationKeys +import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.container.get -import org.jetbrains.kotlin.fir.FirAnalyzerFacade import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage import org.jetbrains.kotlin.fir.backend.Fir2IrComponents +import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration import org.jetbrains.kotlin.fir.backend.IrBuiltInsOverFir -import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver -import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension -import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler -import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions -import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions +import org.jetbrains.kotlin.fir.backend.jvm.* import org.jetbrains.kotlin.fir.pipeline.signatureComposerForJvmFir2Ir import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler @@ -88,15 +88,29 @@ class Fir2IrJvmResultsConverter( lateinit var backendInput: JvmIrCodegenFactory.JvmIrBackendInput lateinit var mainModuleComponents: Fir2IrComponents - val firAnalyzerFacade = inputArtifact.partsForDependsOnModules.last().firAnalyzerFacade as? FirAnalyzerFacade - val generateSignatures = firAnalyzerFacade?.fir2IrConfiguration?.linkViaSignatures == true - + val generateSignatures = compilerConfigurationProvider.getCompilerConfiguration(module) + .getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES) val commonMemberStorage = Fir2IrCommonMemberStorage(signatureComposerForJvmFir2Ir(generateSignatures), FirJvmKotlinMangler()) var irBuiltIns: IrBuiltInsOverFir? = null for ((index, firOutputPart) in inputArtifact.partsForDependsOnModules.withIndex()) { - val (irModuleFragment, components, pluginContext) = firOutputPart.firAnalyzerFacade.convertToIr( - fir2IrExtensions, commonMemberStorage, irBuiltIns + val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module) + val fir2IrConfiguration = Fir2IrConfiguration( + languageVersionSettings = module.languageVersionSettings, + linkViaSignatures = compilerConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), + evaluatedConstTracker = compilerConfiguration + .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = compilerConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER], + ) + + val (irModuleFragment, components, pluginContext) = firOutputPart.firAnalyzerFacade.result.outputs.single().convertToIr( + fir2IrExtensions, + fir2IrConfiguration, + commonMemberStorage, + irBuiltIns, + irMangler, + FirJvmVisibilityConverter, + DefaultBuiltIns.Instance ) irBuiltIns = components.irBuiltIns diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt index afe435c784a..9fca17ac1d0 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/Fir2IrWasmResultsConverter.kt @@ -18,8 +18,6 @@ import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory -import org.jetbrains.kotlin.fir.AbstractFirAnalyzerFacade -import org.jetbrains.kotlin.fir.FirAnalyzerFacade import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.backend.js.FirJsKotlinMangler import org.jetbrains.kotlin.fir.declarations.FirDeclaration @@ -35,7 +33,6 @@ import org.jetbrains.kotlin.ir.backend.js.incrementalDataProvider import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerDesc import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerIr import org.jetbrains.kotlin.ir.declarations.IrModuleFragment -import org.jetbrains.kotlin.ir.util.KotlinMangler import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary import org.jetbrains.kotlin.library.unresolvedDependencies import org.jetbrains.kotlin.storage.LockBasedStorageManager @@ -84,20 +81,14 @@ class Fir2IrWasmResultsConverter( val commonMemberStorage = Fir2IrCommonMemberStorage(IdSignatureDescriptor(JsManglerDesc), FirJsKotlinMangler()) - val irMangler = JsManglerIr - for ((index, part) in inputArtifact.partsForDependsOnModules.withIndex()) { val (irModuleFragment, components, pluginContext) = - part.firAnalyzerFacade.convertToWasmIr( - part.firFiles.values, - fir2IrExtensions = Fir2IrExtensions.Default, + part.firAnalyzerFacade.result.outputs.single().convertToWasmIr( module, configuration, testServices, commonMemberStorage, irBuiltIns, - irMangler, - generateSignatures = true, ) irBuiltIns = components.irBuiltIns mainPluginContext = pluginContext @@ -129,7 +120,7 @@ class Fir2IrWasmResultsConverter( diagnosticReporter = DiagnosticReporterFactory.createReporter(), hasErrors = inputArtifact.hasErrors, descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler, - irMangler = irMangler, + irMangler = JsManglerIr, firMangler = commonMemberStorage.firSignatureComposer.mangler, ) { file, irActualizedResult -> val (firFile, components) = firFilesAndComponentsBySourceFile[file] @@ -154,36 +145,31 @@ class Fir2IrWasmResultsConverter( } } -fun AbstractFirAnalyzerFacade.convertToWasmIr( - firFiles: Collection, - fir2IrExtensions: Fir2IrExtensions, +fun ModuleCompilerAnalyzedOutput.convertToWasmIr( module: TestModule, configuration: CompilerConfiguration, testServices: TestServices, commonMemberStorage: Fir2IrCommonMemberStorage, - irBuiltIns: IrBuiltInsOverFir?, - irMangler: KotlinMangler.IrMangler, - generateSignatures: Boolean + irBuiltIns: IrBuiltInsOverFir? ): Fir2IrResult { - this as FirAnalyzerFacade // TODO: consider avoiding repeated libraries resolution val libraries = resolveWasmLibraries(module, testServices, configuration) val (dependencies, builtIns) = loadResolvedLibraries(libraries, configuration.languageVersionSettings, testServices) val fir2IrConfiguration = Fir2IrConfiguration( languageVersionSettings = configuration.languageVersionSettings, - linkViaSignatures = generateSignatures, + linkViaSignatures = true, evaluatedConstTracker = configuration .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), inlineConstTracker = null, ) - return ModuleCompilerAnalyzedOutput(this.session, this.scopeSession, firFiles.toList()).convertToIr( - fir2IrExtensions, + return convertToIr( + Fir2IrExtensions.Default, fir2IrConfiguration, commonMemberStorage, irBuiltIns, - irMangler, + JsManglerIr, Fir2IrVisibilityConverter.Default, builtIns ?: DefaultBuiltIns.Instance // TODO: consider passing externally, ).also { diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt index 973d77a5f37..639d7e66431 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/FirFrontendFacade.kt @@ -16,14 +16,11 @@ import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM import org.jetbrains.kotlin.cli.jvm.compiler.VfsBasedProjectEnvironment import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots import org.jetbrains.kotlin.cli.jvm.config.jvmModularRoots -import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.CompilerConfiguration import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.config.LanguageFeature -import org.jetbrains.kotlin.constant.EvaluatedConstTracker import org.jetbrains.kotlin.container.topologicalSort import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration import org.jetbrains.kotlin.fir.checkers.registerExtendedCommonCheckers import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar @@ -270,7 +267,6 @@ open class FirFrontendFacade( val sessionProvider = moduleInfoProvider.firSessionProvider val project = compilerConfigurationProvider.getProject(module) - val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module) PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java) @@ -304,13 +300,6 @@ open class FirFrontendFacade( val firAnalyzerFacade = FirAnalyzerFacade( moduleBasedSession, - Fir2IrConfiguration( - languageVersionSettings = module.languageVersionSettings, - linkViaSignatures = compilerConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), - evaluatedConstTracker = compilerConfiguration - .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), - inlineConstTracker = compilerConfiguration[CommonConfigurationKeys.INLINE_CONST_TRACKER], - ), ktFiles, lightTreeFiles, parser, 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 2954656d1bb..4781be0bd17 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 @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.asJava.finder.JavaElementFinder import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl +import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector @@ -33,10 +34,7 @@ import org.jetbrains.kotlin.fir.FirAnalyzerFacade import org.jetbrains.kotlin.fir.FirTestSessionFactoryHelper import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration -import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver -import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension -import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler -import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions +import org.jetbrains.kotlin.fir.backend.jvm.* import org.jetbrains.kotlin.fir.pipeline.signatureComposerForJvmFir2Ir import org.jetbrains.kotlin.ir.backend.jvm.jvmResolveLibraries import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler @@ -118,31 +116,36 @@ object GenerationUtils { getPackagePartProvider = packagePartProvider ) + val linkViaSignatures = configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES) // TODO: add running checkers and check that it's safe to compile val firAnalyzerFacade = FirAnalyzerFacade( session, - Fir2IrConfiguration( - languageVersionSettings = configuration.languageVersionSettings, - linkViaSignatures = configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES), - evaluatedConstTracker = configuration - .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), - inlineConstTracker = configuration[CommonConfigurationKeys.INLINE_CONST_TRACKER], - ), files, emptyList(), FirParser.Psi, ) + val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler) - val commonMemberStorage = Fir2IrCommonMemberStorage( - signatureComposerForJvmFir2Ir(firAnalyzerFacade.fir2IrConfiguration.linkViaSignatures), - FirJvmKotlinMangler(), + val fir2IrConfiguration = Fir2IrConfiguration( + languageVersionSettings = configuration.languageVersionSettings, + linkViaSignatures = linkViaSignatures, + evaluatedConstTracker = configuration + .putIfAbsent(CommonConfigurationKeys.EVALUATED_CONST_TRACKER, EvaluatedConstTracker.create()), + inlineConstTracker = configuration[CommonConfigurationKeys.INLINE_CONST_TRACKER], ) - val (moduleFragment, components, pluginContext) = firAnalyzerFacade.convertToIr( + val commonMemberStorage = Fir2IrCommonMemberStorage(signatureComposerForJvmFir2Ir(linkViaSignatures), FirJvmKotlinMangler()) + + firAnalyzerFacade.runResolution() + val (moduleFragment, components, pluginContext) = firAnalyzerFacade.result.outputs.single().convertToIr( fir2IrExtensions, + fir2IrConfiguration, commonMemberStorage, - irBuiltIns = null + irBuiltIns = null, + JvmIrMangler, + FirJvmVisibilityConverter, + DefaultBuiltIns.Instance ) val dummyBindingContext = NoScopeRecordCliBindingTrace().bindingContext diff --git a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/fir/FirAnalyzerFacade.kt b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/fir/FirAnalyzerFacade.kt index 60a621de3f2..bfd36ce16be 100644 --- a/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/fir/FirAnalyzerFacade.kt +++ b/compiler/tests-compiler-utils/tests/org/jetbrains/kotlin/fir/FirAnalyzerFacade.kt @@ -6,35 +6,26 @@ package org.jetbrains.kotlin.fir import org.jetbrains.kotlin.KtSourceFile -import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory import org.jetbrains.kotlin.diagnostics.KtDiagnostic -import org.jetbrains.kotlin.fir.backend.* -import org.jetbrains.kotlin.fir.backend.jvm.FirJvmVisibilityConverter import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.pipeline.* import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.FirParser abstract class AbstractFirAnalyzerFacade { abstract val scopeSession: ScopeSession + abstract val result: FirResult + abstract fun runCheckers(): Map> abstract fun runResolution(): List - - abstract fun convertToIr( - fir2IrExtensions: Fir2IrExtensions, - commonMemberStorage: Fir2IrCommonMemberStorage, - irBuiltIns: IrBuiltInsOverFir? - ): Fir2IrResult } class FirAnalyzerFacade( val session: FirSession, - val fir2IrConfiguration: Fir2IrConfiguration, val ktFiles: Collection = emptyList(), // may be empty if light tree mode enabled val lightTreeFiles: Collection = emptyList(), // may be empty if light tree mode disabled val parser: FirParser, @@ -45,6 +36,9 @@ class FirAnalyzerFacade( override val scopeSession: ScopeSession get() = _scopeSession!! + override val result: FirResult + get() = FirResult(listOf(ModuleCompilerAnalyzedOutput(session, scopeSession, firFiles!!))) + private var collectedDiagnostics: Map>? = null private fun buildRawFir() { @@ -68,22 +62,4 @@ class FirAnalyzerFacade( collectedDiagnostics = session.runCheckers(scopeSession, firFiles!!, DiagnosticReporterFactory.createPendingReporter()) return collectedDiagnostics!! } - - override fun convertToIr( - fir2IrExtensions: Fir2IrExtensions, - commonMemberStorage: Fir2IrCommonMemberStorage, - irBuiltIns: IrBuiltInsOverFir? - ): Fir2IrResult { - if (_scopeSession == null) runResolution() - - return ModuleCompilerAnalyzedOutput(this.session, this.scopeSession, firFiles!!.toList()).convertToIr( - fir2IrExtensions, - fir2IrConfiguration, - commonMemberStorage, - irBuiltIns, - JvmIrMangler, - FirJvmVisibilityConverter, - DefaultBuiltIns.Instance - ) - } }