[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
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.cli.js.klib.serializeFirKlib
import org.jetbrains.kotlin.cli.js.klib.transformFirToIr
import org.jetbrains.kotlin.codegen.ProjectInfo
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
import org.jetbrains.kotlin.ir.backend.js.*
import org.jetbrains.kotlin.test.TargetBackend
@@ -65,7 +66,7 @@ abstract class FirAbstractInvalidationTest(
)
if (outputs != null) {
val irResult = transformFirToIr(moduleStructure, outputs)
val irResult = transformFirToIr(moduleStructure, outputs, diagnosticsReporter)
serializeFirKlib(
moduleStructure = moduleStructure,
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.languageVersionSettings
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.diagnostics.DiagnosticReporterFactory
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.ir.backend.js.JsFactories
import org.jetbrains.kotlin.ir.backend.js.resolverLogger
@@ -60,9 +61,17 @@ class FirJsKlibBackendFacade(
// TODO: consider avoiding repeated libraries resolution
val libraries = resolveJsLibraries(module, testServices, configuration)
// TODO: find out how to pass diagnostics to the test infra in this case
val diagnosticReporter = DiagnosticReporterFactory.createReporter()
if (firstTimeCompilation) {
if (module.frontendKind == FrontendKinds.FIR && module.languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects)) {
IrActualizer.actualize(inputArtifact.mainModuleFragment, inputArtifact.dependentModuleFragments)
IrActualizer.actualize(
inputArtifact.mainModuleFragment,
inputArtifact.dependentModuleFragments,
diagnosticReporter,
configuration.languageVersionSettings
)
}
serializeModuleIntoKlib(