[K2, MPP] implement IR errors reporting and test infrastructure

Fix test data

^KT-56344 Fixed
This commit is contained in:
Ilya Chernikov
2023-02-09 12:34:30 +01:00
committed by Space Team
parent 3b1071b42b
commit 59b88f33b2
48 changed files with 2583 additions and 2146 deletions
@@ -493,7 +493,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
) ?: return null
// FIR2IR
val irResult = transformFirToIr(moduleStructure, outputs)
val irResult = transformFirToIr(moduleStructure, outputs, diagnosticsReporter)
// Serialize klib
if (arguments.irProduceKlibDir || arguments.irProduceKlibFile) {
@@ -17,9 +17,11 @@ import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.prepareJsSessions
import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.diagnostics.impl.BaseDiagnosticsCollector
import org.jetbrains.kotlin.diagnostics.impl.PendingDiagnosticsCollectorWithSuppress
import org.jetbrains.kotlin.fir.BinaryModuleData
import org.jetbrains.kotlin.fir.DependencyListForCliModule
import org.jetbrains.kotlin.fir.FirSession
@@ -99,7 +101,8 @@ fun compileModuleToAnalyzedFir(
fun transformFirToIr(
moduleStructure: ModulesStructure,
firOutputs: List<ModuleCompilerAnalyzedOutput>
firOutputs: List<ModuleCompilerAnalyzedOutput>,
diagnosticsReporter: PendingDiagnosticsCollectorWithSuppress,
): Fir2IrResult {
val fir2IrExtensions = Fir2IrExtensions.Default
@@ -135,6 +138,8 @@ fun transformFirToIr(
irMangler = JsManglerIr,
visibilityConverter = Fir2IrVisibilityConverter.Default,
kotlinBuiltIns = builtInsModule ?: DefaultBuiltIns.Instance,
diagnosticReporter = diagnosticsReporter,
languageVersionSettings = moduleStructure.compilerConfiguration.languageVersionSettings,
fir2IrResultPostCompute = {
(this.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors }
}
@@ -156,7 +156,9 @@ object FirKotlinToJvmBytecodeCompiler {
val fir2IrResult = firResult.convertToIrAndActualizeForJvm(
fir2IrExtensions,
irGenerationExtensions,
linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
linkViaSignatures = moduleConfiguration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES),
diagnosticsReporter,
moduleConfiguration.languageVersionSettings
)
performanceManager?.notifyIRTranslationFinished()
@@ -232,7 +232,10 @@ fun convertAnalyzedFirToIr(
} ?: emptyList()
val linkViaSignatures = input.configuration.getBoolean(JVMConfigurationKeys.LINK_VIA_SIGNATURES)
val (irModuleFragment, components, pluginContext) =
analysisResults.convertToIrAndActualizeForJvm(extensions, irGenerationExtensions, linkViaSignatures)
analysisResults.convertToIrAndActualizeForJvm(
extensions, irGenerationExtensions, linkViaSignatures,
environment.diagnosticsReporter, input.configuration.languageVersionSettings
)
return ModuleCompilerIrBackendInput(
input.targetId,