diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DeclarationTable.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DeclarationTable.kt index 2d4da384146..ad901cae8c9 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DeclarationTable.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DeclarationTable.kt @@ -38,7 +38,7 @@ abstract class GlobalDeclarationTable(private val mangler: KotlinMangler, privat protected open fun loadKnownBuiltins(builtIns: IrBuiltIns, startIndex: Long): Long { var index = startIndex builtIns.knownBuiltins.forEach { - table[it.owner] = UniqId(index++, false) + table[it.owner] = UniqId(index++, false).also { id -> clashTracker.commit(it.owner, id) } } return index } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DeserializeDescriptorReference.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DeserializeDescriptorReference.kt index 93c2af7c91e..c85267171a1 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DeserializeDescriptorReference.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/DeserializeDescriptorReference.kt @@ -29,11 +29,7 @@ abstract class DescriptorReferenceDeserializer( ) : DescriptorUniqIdAware { protected open fun resolveSpecialDescriptor(fqn: FqName) = builtIns.builtIns.getBuiltInClassByFqName(fqn) - - protected abstract fun resolveSpecialDescriptor(fqn: FqName): DeclarationDescriptor - abstract fun checkIfSpecialDescriptorId(id: Long): Boolean - protected abstract fun getDescriptorIdOrNull(descriptor: DeclarationDescriptor): Long? - protected open fun checkIfSpecialDescriptorId(id: Long) = with(mangler) { id.isSpecial } + open fun checkIfSpecialDescriptorId(id: Long) = with(mangler) { id.isSpecial } protected open fun getDescriptorIdOrNull(descriptor: DeclarationDescriptor) = if (isBuiltInFunction(descriptor)) { diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt index 7b3dd624984..972fd053bf9 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrModuleSerializer.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.backend.common.serialization import org.jetbrains.kotlin.backend.common.LoggingContext +import org.jetbrains.kotlin.builtins.FunctionInterfacePackageFragment import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.library.SerializedIrFile @@ -20,6 +21,6 @@ abstract class IrModuleSerializer(protected val logger: Lo } fun serializedIrModule(module: IrModuleFragment): SerializedIrModule { - return SerializedIrModule(module.files.map { serializeIrFile(it) }) + return SerializedIrModule(module.files.filter { it.packageFragmentDescriptor !is FunctionInterfacePackageFragment }.map { serializeIrFile(it) }) } } \ No newline at end of file diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsDeclarationTable.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsDeclarationTable.kt index 324d9dd4ae7..b31b2b0001a 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsDeclarationTable.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsDeclarationTable.kt @@ -5,8 +5,8 @@ package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir -import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable -import org.jetbrains.kotlin.backend.common.serialization.DescriptorTable +import org.jetbrains.kotlin.backend.common.serialization.* +import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.util.render @@ -27,11 +27,7 @@ class JsUniqIdClashTracker: UniqIdClashTracker { } class JsGlobalDeclarationTable(builtIns: IrBuiltIns) : GlobalDeclarationTable(JsMangler, JsUniqIdClashTracker()) { - private val FUNCTION_INDEX_START: Long = loadKnownBuiltins(builtIns, PUBLIC_LOCAL_UNIQ_ID_EDGE) - - override fun computeUniqIdByDeclaration(declaration: IrDeclaration): UniqId { - return if (isBuiltInFunction(declaration)) { - UniqId(FUNCTION_INDEX_START + builtInFunctionId(declaration), false) - } else super.computeUniqIdByDeclaration(declaration) + init { + loadKnownBuiltins(builtIns, PUBLIC_LOCAL_UNIQ_ID_EDGE) } } \ No newline at end of file diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrLinker.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrLinker.kt index b33d1446e3f..c4f9d735324 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrLinker.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrLinker.kt @@ -23,9 +23,6 @@ class JsIrLinker( ) : KotlinIrLinker(logger, builtIns, symbolTable, emptyList(), null, PUBLIC_LOCAL_UNIQ_ID_EDGE), DescriptorUniqIdAware by JsDescriptorUniqIdAware { - override fun getPrimitiveTypeOrNull(symbol: IrClassifierSymbol, hasQuestionMark: Boolean) = - builtIns.getPrimitiveTypeOrNullByDescriptor(symbol.descriptor, hasQuestionMark) - override val descriptorReferenceDeserializer = JsDescriptorReferenceDeserializer(currentModule, mangler, builtIns)