[Test] Get rid of some properties in IrBackendInput

`fir2IrComponents`, `irActualizerResult` and `dependentIrModuleFragments`
  were used in `IrActualizerAndPluginsFacade`, which was removed in the
  previous commit
This commit is contained in:
Dmitriy Novozhilov
2023-11-21 13:14:57 +02:00
committed by Space Team
parent 1303a33bea
commit 075010b14e
11 changed files with 6 additions and 63 deletions
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages
import org.jetbrains.kotlin.diagnostics.rendering.RootDiagnosticRendererFactory
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
import org.jetbrains.kotlin.resolve.jvm.diagnostics.KtDefaultJvmErrorMessages
import org.jetbrains.kotlin.test.FirParser
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives
@@ -29,11 +28,11 @@ import org.jetbrains.kotlin.test.services.*
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
import java.io.File
// TODO: inline this function
inline fun IrBackendInput.processAllIrModuleFragments(
module: TestModule,
processor: (irModuleFragment: IrModuleFragment, moduleName: String) -> Unit
) {
dependentIrModuleFragments.forEach { processor(it, it.name.asString()) }
processor(irModuleFragment, module.name)
}
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
import org.jetbrains.kotlin.fir.backend.FirMangler
import org.jetbrains.kotlin.ir.backend.js.KotlinFileSerializedData
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
@@ -28,11 +27,6 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
abstract val irModuleFragment: IrModuleFragment
/**
* It's actual only with MPP where every source module is separated
*/
abstract val dependentIrModuleFragments: List<IrModuleFragment>
/**
* Here plugin context can be used as a service for inspecting resulting IR module
*/
@@ -67,24 +61,10 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
*/
abstract val firMangler: FirMangler?
/**
* Instance of fir2IrComponents that generated by Fir2Ir or null if this artifact was compiled using the classic frontend.
*/
abstract val fir2IrComponents: Fir2IrComponents?
/**
* Results of actualization, came from IrActulizer
*
* @see org.jetbrains.kotlin.backend.common.actualizer
* @see org.jetbrains.kotlin.test.backend.ir.IrActualizerAndPluginsFacade
*/
abstract var irActualizerResult: IrActualizedResult?
abstract val diagnosticReporter: BaseDiagnosticsCollector
class JsIrBackendInput(
override val irModuleFragment: IrModuleFragment,
override val dependentIrModuleFragments: List<IrModuleFragment>,
override val irPluginContext: IrPluginContext,
val sourceFiles: List<KtSourceFile>,
val icData: List<KotlinFileSerializedData>,
@@ -93,31 +73,24 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
override val fir2IrComponents: Fir2IrComponents?,
override var irActualizerResult: IrActualizedResult? = null,
val serializeSingleFile: (KtSourceFile, IrActualizedResult?) -> ProtoBuf.PackageFragment,
) : IrBackendInput()
data class JsIrDeserializedFromKlibBackendInput(
override val irModuleFragment: IrModuleFragment,
override val dependentIrModuleFragments: List<IrModuleFragment>,
override val irPluginContext: IrPluginContext,
override val diagnosticReporter: BaseDiagnosticsCollector,
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
override val fir2IrComponents: Fir2IrComponents?
) : IrBackendInput() {
override val kind: BackendKind<IrBackendInput>
get() = BackendKinds.DeserializedIrBackend
override var irActualizerResult: IrActualizedResult? = null
}
class WasmBackendInput(
override val irModuleFragment: IrModuleFragment,
override val dependentIrModuleFragments: List<IrModuleFragment>,
override val irPluginContext: IrPluginContext,
val sourceFiles: List<KtSourceFile>,
val icData: List<KotlinFileSerializedData>,
@@ -126,8 +99,6 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
override var irActualizerResult: IrActualizedResult? = null,
override val fir2IrComponents: Fir2IrComponents?,
val serializeSingleFile: (KtSourceFile, IrActualizedResult?) -> ProtoBuf.PackageFragment,
) : IrBackendInput()
@@ -135,13 +106,10 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
val state: GenerationState,
val codegenFactory: JvmIrCodegenFactory,
val backendInput: JvmIrCodegenFactory.JvmIrBackendInput,
override val dependentIrModuleFragments: List<IrModuleFragment>,
val sourceFiles: List<KtSourceFile>,
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
override var irActualizerResult: IrActualizedResult? = null,
override val fir2IrComponents: Fir2IrComponents?,
) : IrBackendInput() {
override val irModuleFragment: IrModuleFragment
get() = backendInput.irModuleFragment
@@ -158,13 +126,10 @@ sealed class IrBackendInput : ResultingArtifact.BackendInput<IrBackendInput>() {
// So, other fields are actually not needed: source files, icData, error flag, serialization lambda, etc...
class NativeBackendInput(
override val irModuleFragment: IrModuleFragment,
override val dependentIrModuleFragments: List<IrModuleFragment>,
override val irPluginContext: IrPluginContext,
override val diagnosticReporter: BaseDiagnosticsCollector,
override val descriptorMangler: KotlinMangler.DescriptorMangler,
override val irMangler: KotlinMangler.IrMangler,
override val firMangler: FirMangler?,
override var irActualizerResult: IrActualizedResult? = null,
override val fir2IrComponents: Fir2IrComponents?
) : IrBackendInput()
}
@@ -74,12 +74,10 @@ class ClassicFrontend2IrConverter(
state,
codegenFactory,
conversionResult,
dependentIrModuleFragments = emptyList(),
sourceFiles = emptyList(),
descriptorMangler = conversionResult.symbolTable.signaturer.mangler,
irMangler = JvmIrMangler,
firMangler = null,
fir2IrComponents = null,
)
}
@@ -111,7 +109,6 @@ class ClassicFrontend2IrConverter(
return IrBackendInput.JsIrBackendInput(
moduleFragment,
dependentIrModuleFragments = emptyList(),
pluginContext,
sourceFiles.map(::KtPsiSourceFile),
icData,
@@ -120,7 +117,6 @@ class ClassicFrontend2IrConverter(
descriptorMangler = (pluginContext.symbolTable as SymbolTable).signaturer.mangler,
irMangler = JsManglerIr,
firMangler = null,
fir2IrComponents = null,
) { file, _ ->
metadataSerializer.serializeScope(file, analysisResult.bindingContext, moduleFragment.descriptor)
}
@@ -155,7 +151,6 @@ class ClassicFrontend2IrConverter(
return IrBackendInput.WasmBackendInput(
moduleFragment,
dependentIrModuleFragments = emptyList(),
pluginContext,
sourceFiles.map(::KtPsiSourceFile),
icData,
@@ -164,7 +159,6 @@ class ClassicFrontend2IrConverter(
descriptorMangler = (pluginContext.symbolTable as SymbolTable).signaturer.mangler,
irMangler = JsManglerIr,
firMangler = null,
fir2IrComponents = null,
) { file, _ ->
metadataSerializer.serializeScope(file, analysisResult.bindingContext, moduleFragment.descriptor)
}
@@ -76,7 +76,6 @@ class Fir2IrJsResultsConverter(
val sourceFiles = mutableListOf<KtSourceFile>()
val firFilesAndComponentsBySourceFile = mutableMapOf<KtSourceFile, Pair<FirFile, Fir2IrComponents>>()
lateinit var mainPluginContext: IrPluginContext
lateinit var mainComponents: Fir2IrComponents
var irBuiltIns: IrBuiltInsOverFir? = null
val commonMemberStorage = Fir2IrCommonMemberStorage(IdSignatureDescriptor(JsManglerDesc), FirJsKotlinMangler())
@@ -101,7 +100,6 @@ class Fir2IrJsResultsConverter(
dependentIrParts.add(irModuleFragment)
} else {
mainIrPart = irModuleFragment
mainComponents = components
}
sourceFiles.addAll(part.firFiles.mapNotNull { it.value.sourceFile })
@@ -117,7 +115,6 @@ class Fir2IrJsResultsConverter(
val result = IrBackendInput.JsIrBackendInput(
mainIrPart,
dependentIrParts,
mainPluginContext,
sourceFiles,
configuration.incrementalDataProvider?.getSerializedData(sourceFiles) ?: emptyList(),
@@ -126,7 +123,6 @@ class Fir2IrJsResultsConverter(
descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler,
irMangler = irMangler,
firMangler = commonMemberStorage.firSignatureComposer.mangler,
fir2IrComponents = mainComponents
) { file, irActualizedResult ->
val (firFile, components) = firFilesAndComponentsBySourceFile[file]
?: error("cannot find FIR file by source file ${file.name} (${file.path})")
@@ -147,7 +143,6 @@ class Fir2IrJsResultsConverter(
configuration.languageVersionSettings,
)
}
return result
}
}
@@ -118,7 +118,7 @@ class Fir2IrJvmResultsConverter(
FirJvmVisibilityConverter,
DefaultBuiltIns.Instance,
typeContextProvider = ::JvmIrTypeSystemContext,
)
)
irBuiltIns = components.irBuiltIns
if (index < inputArtifact.partsForDependsOnModules.size - 1) {
@@ -154,12 +154,10 @@ class Fir2IrJvmResultsConverter(
generationState,
codegenFactory,
backendInput,
dependentIrParts,
sourceFiles,
descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler,
irMangler = irMangler,
firMangler = commonMemberStorage.firSignatureComposer.mangler,
fir2IrComponents = mainModuleComponents
)
return result
@@ -79,7 +79,6 @@ class Fir2IrWasmResultsConverter(
val sourceFiles = mutableListOf<KtSourceFile>()
val firFilesAndComponentsBySourceFile = mutableMapOf<KtSourceFile, Pair<FirFile, Fir2IrComponents>>()
lateinit var mainPluginContext: IrPluginContext
lateinit var mainComponents: Fir2IrComponents
var irBuiltIns: IrBuiltInsOverFir? = null
val commonMemberStorage = Fir2IrCommonMemberStorage(IdSignatureDescriptor(JsManglerDesc), FirJsKotlinMangler())
@@ -102,7 +101,6 @@ class Fir2IrWasmResultsConverter(
dependentIrParts.add(irModuleFragment)
} else {
mainIrPart = irModuleFragment
mainComponents = components
}
sourceFiles.addAll(part.firFiles.mapNotNull { it.value.sourceFile })
@@ -118,7 +116,6 @@ class Fir2IrWasmResultsConverter(
return IrBackendInput.WasmBackendInput(
mainIrPart,
dependentIrParts,
mainPluginContext,
sourceFiles,
configuration.incrementalDataProvider?.getSerializedData(sourceFiles) ?: emptyList(),
@@ -127,7 +124,6 @@ class Fir2IrWasmResultsConverter(
descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler,
irMangler = JsManglerIr,
firMangler = commonMemberStorage.firSignatureComposer.mangler,
fir2IrComponents = mainComponents,
) { file, irActualizedResult ->
val (firFile, components) = firFilesAndComponentsBySourceFile[file]
?: error("cannot find FIR file by source file ${file.name} (${file.path})")
@@ -74,7 +74,7 @@ class FirJsKlibBackendFacade(
abiVersion = KotlinAbiVersion.CURRENT, // TODO get from test file data
jsOutputName = null
) {
inputArtifact.serializeSingleFile(it, inputArtifact.irActualizerResult)
inputArtifact.serializeSingleFile(it, TODO("Will be fixed in the next commit"))
}
}
@@ -63,7 +63,7 @@ class JsKlibBackendFacade(
abiVersion = KotlinAbiVersion.CURRENT, // TODO get from test file data
jsOutputName = null
) {
inputArtifact.serializeSingleFile(it, inputArtifact.irActualizerResult)
inputArtifact.serializeSingleFile(it, TODO("Will be fixed in the next commit"))
}
}
@@ -127,13 +127,11 @@ class ClassicFrontend2NativeIrConverter(
return IrBackendInput.NativeBackendInput(
moduleFragment,
dependentIrModuleFragments = emptyList(),
pluginContext,
diagnosticReporter = DiagnosticReporterFactory.createReporter(),
descriptorMangler = (pluginContext.symbolTable as SymbolTable).signaturer.mangler,
irMangler = KonanManglerIr,
firMangler = null,
fir2IrComponents = null,
)
}
@@ -145,4 +143,4 @@ class ClassicFrontend2NativeIrConverter(
CastCompatibleKotlinNativeClassLoader.kotlinNativeClassLoader.classLoader
).kotlin
}
}
}
@@ -114,13 +114,11 @@ class Fir2IrNativeResultsConverter(
val result = IrBackendInput.NativeBackendInput(
mainIrPart,
dependentIrParts,
mainPluginContext,
diagnosticReporter = diagnosticReporter,
descriptorMangler = commonMemberStorage.symbolTable.signaturer.mangler,
irMangler = KonanManglerIr,
firMangler = commonMemberStorage.firSignatureComposer.mangler,
fir2IrComponents = null,
)
return result
@@ -74,7 +74,7 @@ class FirWasmKlibBackendFacade(
abiVersion = KotlinAbiVersion.CURRENT, // TODO get from test file data
jsOutputName = null
) {
inputArtifact.serializeSingleFile(it, inputArtifact.irActualizerResult)
inputArtifact.serializeSingleFile(it, TODO("Will be fixed in the next commit"))
}
}