[Test] Drop convertToIr method from AbstractFirAnalyzerFacade
We are going to use `convertToIr` from `ModuleCompilerAnalyzedOutput` without an intermediate wrapper.
This commit is contained in:
+7
-19
@@ -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<FirFile>,
|
||||
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 {
|
||||
|
||||
+25
-11
@@ -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
|
||||
|
||||
|
||||
+8
-22
@@ -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<FirFile>,
|
||||
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 {
|
||||
|
||||
-11
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user