From a2e148173d423f232ae87833b35a470e38eedd70 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Fri, 15 Sep 2023 15:08:43 +0200 Subject: [PATCH] [JS] Don't produce metadata-only (IR-less) KLIBs in JS The scenario when JS source code is shared between a few JS common source sets is not supported in Kotlin Multiplatform. ^KT-61136 --- .../metadata/KlibMetadataIncrementalSerializer.kt | 10 ++++++++-- .../serialization/metadata/KlibMetadataSerializer.kt | 2 +- .../src/org/jetbrains/kotlin/ir/backend/js/klib.kt | 4 ---- .../kotlin/klib/AbstractKlibIrTextTestCase.kt | 1 - 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataIncrementalSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataIncrementalSerializer.kt index 29c0006944a..b16b06f02db 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataIncrementalSerializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataIncrementalSerializer.kt @@ -25,9 +25,15 @@ class KlibMetadataIncrementalSerializer( metadataVersion: KlibMetadataVersion, project: Project, exportKDoc: Boolean, - skipExpects: Boolean, allowErrorTypes: Boolean = false -) : KlibMetadataSerializer(languageVersionSettings, metadataVersion, project, exportKDoc, skipExpects, allowErrorTypes = allowErrorTypes) { +) : KlibMetadataSerializer( + languageVersionSettings = languageVersionSettings, + metadataVersion = metadataVersion, + project = project, + exportKDoc = exportKDoc, + skipExpects = true, // Incremental compilation is not supposed to work when producing pure metadata (IR-less) KLIBs. + allowErrorTypes = allowErrorTypes +) { fun serializePackageFragment( module: ModuleDescriptor, diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializer.kt index 10db46b7dd6..749dd19aaa6 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializer.kt @@ -34,7 +34,7 @@ abstract class KlibMetadataSerializer( val metadataVersion: BinaryVersion, val project: Project?, val exportKDoc: Boolean = false, - val skipExpects: Boolean = false, + val skipExpects: Boolean, val includeOnlyModuleContent: Boolean = false, private val allowErrorTypes: Boolean, val produceHeaderKlib: Boolean = false, diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt index be1fd18f592..7421ec82fbd 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/klib.kt @@ -98,9 +98,6 @@ val KotlinLibrary.serializedKlibFingerprint: SerializedKlibFingerprint? private val CompilerConfiguration.metadataVersion get() = get(CommonConfigurationKeys.METADATA_VERSION) as? KlibMetadataVersion ?: KlibMetadataVersion.INSTANCE -private val CompilerConfiguration.expectActualLinker: Boolean - get() = get(CommonConfigurationKeys.EXPECT_ACTUAL_LINKER) ?: false - private val SerializedIrFile.fileMetadata: ByteArray get() = backendSpecificMetadata ?: error("Expect file caches to have backendSpecificMetadata, but '$path' doesn't") @@ -838,7 +835,6 @@ fun KlibMetadataIncrementalSerializer(configuration: CompilerConfiguration, proj metadataVersion = configuration.metadataVersion, project = project, exportKDoc = false, - skipExpects = !configuration.expectActualLinker, allowErrorTypes = allowErrors ) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/klib/AbstractKlibIrTextTestCase.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/klib/AbstractKlibIrTextTestCase.kt index 4554cf099dc..241e8a9b987 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/klib/AbstractKlibIrTextTestCase.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/klib/AbstractKlibIrTextTestCase.kt @@ -122,7 +122,6 @@ abstract class AbstractKlibIrTextTestCase : CodegenTestCase() { metadataVersion = KlibMetadataVersion.INSTANCE, project = project, exportKDoc = false, - skipExpects = true, allowErrorTypes = allowErrors )