[FIR2IR] Don't use descriptor manglers in FIR2IR

They don't do anything, only complicate the initial configuration.

KT-64990
This commit is contained in:
Sergej Jaskiewicz
2024-01-15 19:48:34 +01:00
committed by Space Team
parent 8b4cc050eb
commit bc5810ee67
21 changed files with 34 additions and 109 deletions
@@ -176,7 +176,7 @@ class IrMangledNameAndSignatureDumpHandler(
private inner class DumpStrategy(
val module: TestModule,
val irMangler: KotlinMangler.IrMangler,
val descriptorMangler: KotlinMangler.DescriptorMangler,
val descriptorMangler: KotlinMangler.DescriptorMangler?,
val firMangler: FirMangler?,
val irBuiltIns: IrBuiltIns,
) : CustomKotlinLikeDumpStrategy {
@@ -242,7 +242,7 @@ class IrMangledNameAndSignatureDumpHandler(
// for computing signature mangled names.
firMangler?.addSignatureMangledNameTo(signatureMangledNames, firDeclaration, ComputedBy.FE)
} else
descriptorMangler.addSignatureMangledNameTo(signatureMangledNames, symbol.descriptor, ComputedBy.FE)
descriptorMangler?.addSignatureMangledNameTo(signatureMangledNames, symbol.descriptor, ComputedBy.FE)
}
fun printActualMangledNamesAndSignatures() {
@@ -33,14 +33,15 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
abstract val irPluginContext: IrPluginContext
/**
* The mangler instance that was used to build declaration signatures from (possibly deserialized) K1 descriptors for this backend.
* The mangler instance that was used to build declaration signatures from (possibly deserialized) K1 descriptors for this backend,
* or `null` if this artifact was compiled using the K2 frontend.
*
* This instance can be used to verify signatures in tests.
*
* @see org.jetbrains.kotlin.backend.common.serialization.mangle.descriptor.DescriptorMangleComputer
* @see org.jetbrains.kotlin.ir.util.IdSignature
*/
abstract val descriptorMangler: KotlinMangler.DescriptorMangler
abstract val descriptorMangler: KotlinMangler.DescriptorMangler?
/**
* The mangler instance that was used to build declaration signatures from IR declarations for this backend.
@@ -70,7 +71,7 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
val icData: List<KotlinFileSerializedData>,
override val diagnosticReporter: BaseDiagnosticsCollector,
val hasErrors: Boolean,
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val descriptorMangler: KotlinMangler.DescriptorMangler?,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
val serializeSingleFile: (KtSourceFile) -> ProtoBuf.PackageFragment,
@@ -80,7 +81,7 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
override val irModuleFragment: IrModuleFragment,
override val irPluginContext: IrPluginContext,
override val diagnosticReporter: BaseDiagnosticsCollector,
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val descriptorMangler: KotlinMangler.DescriptorMangler?,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
) : IrBackendInput() {
@@ -96,7 +97,7 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
val icData: List<KotlinFileSerializedData>,
override val diagnosticReporter: BaseDiagnosticsCollector,
val hasErrors: Boolean,
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val descriptorMangler: KotlinMangler.DescriptorMangler?,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
val serializeSingleFile: (KtSourceFile) -> ProtoBuf.PackageFragment,
@@ -107,7 +108,7 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
val codegenFactory: JvmIrCodegenFactory,
val backendInput: JvmIrCodegenFactory.JvmIrBackendInput,
val sourceFiles: List<KtSourceFile>,
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val descriptorMangler: KotlinMangler.DescriptorMangler?,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
) : IrBackendInput() {
@@ -128,7 +129,7 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
override val irModuleFragment: IrModuleFragment,
override val irPluginContext: IrPluginContext,
override val diagnosticReporter: BaseDiagnosticsCollector,
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val descriptorMangler: KotlinMangler.DescriptorMangler?,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
) : IrBackendInput()
@@ -75,7 +75,7 @@ class ClassicFrontend2IrConverter(
codegenFactory,
conversionResult,
sourceFiles = emptyList(),
descriptorMangler = conversionResult.symbolTable.signaturer.mangler,
descriptorMangler = conversionResult.symbolTable.signaturer!!.mangler,
irMangler = JvmIrMangler,
firMangler = null,
)
@@ -114,7 +114,7 @@ class ClassicFrontend2IrConverter(
icData,
diagnosticReporter = DiagnosticReporterFactory.createReporter(),
hasErrors,
descriptorMangler = (pluginContext.symbolTable as SymbolTable).signaturer.mangler,
descriptorMangler = (pluginContext.symbolTable as SymbolTable).signaturer!!.mangler,
irMangler = JsManglerIr,
firMangler = null,
) { file ->
@@ -156,7 +156,7 @@ class ClassicFrontend2IrConverter(
icData,
diagnosticReporter = DiagnosticReporterFactory.createReporter(),
hasErrors,
descriptorMangler = (pluginContext.symbolTable as SymbolTable).signaturer.mangler,
descriptorMangler = (pluginContext.symbolTable as SymbolTable).signaturer!!.mangler,
irMangler = JsManglerIr,
firMangler = null,
) { file ->
@@ -7,14 +7,11 @@ package org.jetbrains.kotlin.test.frontend.fir
import org.jetbrains.kotlin.KtSourceFile
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureDescriptor
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.languageVersionSettings
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
@@ -35,7 +32,6 @@ import org.jetbrains.kotlin.library.unresolvedDependencies
import org.jetbrains.kotlin.storage.LockBasedStorageManager
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
import org.jetbrains.kotlin.test.model.BackendKinds
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
import org.jetbrains.kotlin.test.model.FrontendKinds
@@ -51,7 +47,6 @@ abstract class AbstractFir2IrNonJvmResultsConverter(
FrontendKinds.FIR,
BackendKinds.IrBackend
) {
protected abstract fun createDescriptorMangler(): KotlinMangler.DescriptorMangler
protected abstract fun createIrMangler(): KotlinMangler.IrMangler
protected abstract fun createFirMangler(): FirMangler
protected abstract fun resolveLibraries(module: TestModule, compilerConfiguration: CompilerConfiguration): List<KotlinResolvedLibrary>
@@ -90,7 +85,6 @@ abstract class AbstractFir2IrNonJvmResultsConverter(
Fir2IrExtensions.Default,
fir2IrConfiguration,
module.irGenerationExtensions(testServices),
IdSignatureDescriptor(createDescriptorMangler()),
irMangler,
createFirMangler(),
Fir2IrVisibilityConverter.Default,
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.ir.backend.js.JsFactories
import org.jetbrains.kotlin.ir.backend.js.KotlinFileSerializedData
import org.jetbrains.kotlin.ir.backend.js.getSerializedData
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
@@ -43,16 +42,12 @@ abstract class Fir2IrJsWasmResultsConverter(testServices: TestServices) : Abstra
List<KotlinFileSerializedData>,
BaseDiagnosticsCollector,
Boolean,
KotlinMangler.DescriptorMangler,
KotlinMangler.DescriptorMangler?,
KotlinMangler.IrMangler,
FirMangler?,
(KtSourceFile) -> ProtoBuf.PackageFragment
) -> IrBackendInput
override fun createDescriptorMangler(): KotlinMangler.DescriptorMangler {
return JsManglerDesc
}
override fun createIrMangler(): KotlinMangler.IrMangler {
return JsManglerIr
}
@@ -83,7 +78,7 @@ abstract class Fir2IrJsWasmResultsConverter(testServices: TestServices) : Abstra
compilerConfiguration.incrementalDataProvider?.getSerializedData(sourceFiles) ?: emptyList(),
diagnosticReporter,
inputArtifact.hasErrors,
manglers.descriptorMangler,
/*descriptorMangler = */null,
manglers.irMangler,
manglers.firMangler,
) { file ->
@@ -108,7 +103,7 @@ abstract class Fir2IrJsWasmResultsConverter(testServices: TestServices) : Abstra
}
class Fir2IrJsResultsConverter(testServices: TestServices) : Fir2IrJsWasmResultsConverter(testServices) {
override val artifactFactory: (IrModuleFragment, IrPluginContext, List<KtSourceFile>, List<KotlinFileSerializedData>, BaseDiagnosticsCollector, Boolean, KotlinMangler.DescriptorMangler, KotlinMangler.IrMangler, FirMangler?, (KtSourceFile) -> ProtoBuf.PackageFragment) -> IrBackendInput
override val artifactFactory: (IrModuleFragment, IrPluginContext, List<KtSourceFile>, List<KotlinFileSerializedData>, BaseDiagnosticsCollector, Boolean, KotlinMangler.DescriptorMangler?, KotlinMangler.IrMangler, FirMangler?, (KtSourceFile) -> ProtoBuf.PackageFragment) -> IrBackendInput
get() = IrBackendInput::JsIrBackendInput
override fun resolveLibraries(module: TestModule, compilerConfiguration: CompilerConfiguration): List<KotlinResolvedLibrary> {
@@ -118,7 +113,7 @@ class Fir2IrJsResultsConverter(testServices: TestServices) : Fir2IrJsWasmResults
class Fir2IrWasmResultsConverter(testServices: TestServices) : Fir2IrJsWasmResultsConverter(testServices) {
override val artifactFactory: (IrModuleFragment, IrPluginContext, List<KtSourceFile>, List<KotlinFileSerializedData>, BaseDiagnosticsCollector, Boolean, KotlinMangler.DescriptorMangler, KotlinMangler.IrMangler, FirMangler?, (KtSourceFile) -> ProtoBuf.PackageFragment) -> IrBackendInput
override val artifactFactory: (IrModuleFragment, IrPluginContext, List<KtSourceFile>, List<KotlinFileSerializedData>, BaseDiagnosticsCollector, Boolean, KotlinMangler.DescriptorMangler?, KotlinMangler.IrMangler, FirMangler?, (KtSourceFile) -> ProtoBuf.PackageFragment) -> IrBackendInput
get() = IrBackendInput::WasmBackendInput
override fun resolveLibraries(module: TestModule, compilerConfiguration: CompilerConfiguration): List<KotlinResolvedLibrary> {
@@ -14,11 +14,9 @@ import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace
import org.jetbrains.kotlin.codegen.ClassBuilderFactories
import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
import org.jetbrains.kotlin.fir.backend.Fir2IrCommonMemberStorage
import org.jetbrains.kotlin.fir.backend.Fir2IrConfiguration
import org.jetbrains.kotlin.fir.backend.jvm.*
import org.jetbrains.kotlin.fir.pipeline.convertToIrAndActualize
import org.jetbrains.kotlin.fir.pipeline.signatureComposerForJvmFir2Ir
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
@@ -68,7 +66,6 @@ class Fir2IrJvmResultsConverter(
val phaseConfig = configuration.get(CLIConfigurationKeys.PHASE_CONFIG)
val commonMemberStorage = Fir2IrCommonMemberStorage(signatureComposerForJvmFir2Ir(), FirJvmKotlinMangler())
val diagnosticReporter = DiagnosticReporterFactory.createReporter()
val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module)
@@ -78,7 +75,6 @@ class Fir2IrJvmResultsConverter(
fir2IrExtensions,
fir2IrConfiguration,
module.irGenerationExtensions(testServices),
signatureComposerForJvmFir2Ir(),
irMangler,
FirJvmKotlinMangler(),
FirJvmVisibilityConverter,
@@ -114,9 +110,9 @@ class Fir2IrJvmResultsConverter(
codegenFactory,
backendInput,
sourceFiles,
descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler,
irMangler = irMangler,
firMangler = commonMemberStorage.firSignatureComposer.mangler,
descriptorMangler = null,
irMangler = fir2irResult.components.manglers.irMangler,
firMangler = fir2irResult.components.manglers.firMangler,
)
}
}