[K/JS] Add flag for disabling signature uniqueness checks at klib generating phase

This commit is contained in:
Artem Kobzar
2022-10-14 13:08:58 +00:00
committed by Space Team
parent d249b02cda
commit 9a4a30c9bb
7 changed files with 25 additions and 3 deletions
@@ -734,6 +734,7 @@ fun serializeModuleIntoKlib(
val compatibilityMode = CompatibilityMode(abiVersion)
val sourceBaseDirs = configuration[CommonConfigurationKeys.KLIB_RELATIVE_PATH_BASES] ?: emptyList()
val absolutePathNormalization = configuration[CommonConfigurationKeys.KLIB_NORMALIZE_ABSOLUTE_PATH] ?: false
val signatureClashChecks = configuration[CommonConfigurationKeys.PRODUCE_KLIB_SIGNATURES_CLASH_CHECKS] ?: false
val serializedIr =
JsIrModuleSerializer(
@@ -743,7 +744,8 @@ fun serializeModuleIntoKlib(
compatibilityMode,
skipExpects = !configuration.expectActualLinker,
normalizeAbsolutePaths = absolutePathNormalization,
sourceBaseDirs = sourceBaseDirs
sourceBaseDirs = sourceBaseDirs,
signatureClashChecks
).serializedIrModule(moduleFragment)
val moduleDescriptor = moduleFragment.descriptor
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir
import org.jetbrains.kotlin.backend.common.serialization.CompatibilityMode
import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
import org.jetbrains.kotlin.backend.common.serialization.IdSignatureClashTracker
import org.jetbrains.kotlin.backend.common.serialization.IrModuleSerializer
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.ir.IrBuiltIns
@@ -21,10 +22,14 @@ class JsIrModuleSerializer(
compatibilityMode: CompatibilityMode,
val skipExpects: Boolean,
normalizeAbsolutePaths: Boolean,
sourceBaseDirs: Collection<String>
sourceBaseDirs: Collection<String>,
shouldCheckSignaturesOnUniqueness: Boolean = true
) : IrModuleSerializer<JsIrFileSerializer>(messageLogger, compatibilityMode, normalizeAbsolutePaths, sourceBaseDirs) {
private val globalDeclarationTable = JsGlobalDeclarationTable(irBuiltIns)
private val globalDeclarationTable = JsGlobalDeclarationTable(
irBuiltIns,
if (shouldCheckSignaturesOnUniqueness) JsUniqIdClashTracker() else IdSignatureClashTracker.DEFAULT_TRACKER
)
override fun createSerializerForFile(file: IrFile): JsIrFileSerializer =
JsIrFileSerializer(