[K2, MPP] Remove redundant expect declarations from klib metadata

^KT-57250 Fixed

Introduce flat Fir2IrActualizedResult

It contains output from Fir2Ir and IrActualizer
This commit is contained in:
Ivan Kochurkin
2023-03-15 18:41:52 +01:00
committed by Space Team
parent d91efb212d
commit ee73e4774b
42 changed files with 324 additions and 111 deletions
@@ -14,7 +14,8 @@ 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.ir.backend.js.MainModule
import org.jetbrains.kotlin.ir.backend.js.ModulesStructure
import org.jetbrains.kotlin.test.TargetBackend
import java.io.ByteArrayOutputStream
import java.io.File
@@ -66,12 +67,12 @@ abstract class FirAbstractInvalidationTest(
)
if (outputs != null) {
val irResult = transformFirToIr(moduleStructure, outputs, diagnosticsReporter)
val fir2IrActualizedResult = transformFirToIr(moduleStructure, outputs, diagnosticsReporter)
serializeFirKlib(
moduleStructure = moduleStructure,
firOutputs = outputs,
irResult = irResult,
fir2IrActualizedResult = fir2IrActualizedResult,
outputKlibPath = outputKlibFile.absolutePath,
messageCollector = messageCollector,
diagnosticsReporter = diagnosticsReporter,
@@ -65,14 +65,17 @@ class FirJsKlibBackendFacade(
val diagnosticReporter = DiagnosticReporterFactory.createReporter()
if (firstTimeCompilation) {
if (module.frontendKind == FrontendKinds.FIR && module.languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects)) {
IrActualizer.actualize(
inputArtifact.mainModuleFragment,
inputArtifact.dependentModuleFragments,
diagnosticReporter,
configuration.languageVersionSettings
)
}
val irActualizationResult =
if (module.frontendKind == FrontendKinds.FIR && module.languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformProjects)) {
IrActualizer.actualize(
inputArtifact.mainModuleFragment,
inputArtifact.dependentModuleFragments,
diagnosticReporter,
configuration.languageVersionSettings
)
} else {
null
}
serializeModuleIntoKlib(
configuration[CommonConfigurationKeys.MODULE_NAME]!!,
@@ -88,9 +91,10 @@ class FirJsKlibBackendFacade(
perFile = false,
containsErrorCode = inputArtifact.hasErrors,
abiVersion = KotlinAbiVersion.CURRENT, // TODO get from test file data
jsOutputName = null,
inputArtifact.serializeSingleFile
)
jsOutputName = null
) {
inputArtifact.serializeSingleFile(it, irActualizationResult)
}
}
// TODO: consider avoiding repeated libraries resolution
@@ -61,9 +61,10 @@ class JsKlibBackendFacade(
perFile = false,
containsErrorCode = inputArtifact.hasErrors,
abiVersion = KotlinAbiVersion.CURRENT, // TODO get from test file data
jsOutputName = null,
inputArtifact.serializeSingleFile
)
jsOutputName = null
) {
inputArtifact.serializeSingleFile(it, null)
}
}
val dependencies = JsEnvironmentConfigurator.getAllRecursiveDependenciesFor(module, testServices).toList()