From 14651212666cc807ad17bab18edd28c930d59c2d Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 8 Aug 2019 14:05:42 +0300 Subject: [PATCH] [IR] Split declaration & descriptor tables --- .../src/org/jetbrains/kotlin/ir/backend/js/klib.kt | 6 ++++-- .../js/lower/serialization/ir/JsIrModuleSerializer.kt | 11 ++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) 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 69576912c9b..09e7004c180 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 @@ -283,7 +283,9 @@ fun serializeModuleIntoKlib( ) { val declarationTable = JsDeclarationTable(moduleFragment.irBuiltins, DescriptorTable()) - val serializedIr = JsIrModuleSerializer(emptyLoggingContext, declarationTable).serializedIrModule(moduleFragment) + val descriptorTable = DescriptorTable() + + val serializedIr = JsIrModuleSerializer(emptyLoggingContext, moduleFragment.irBuiltins, descriptorTable).serializedIrModule(moduleFragment) val serializer = JsKlibMetadataSerializationUtil val moduleDescription = @@ -294,7 +296,7 @@ fun serializeModuleIntoKlib( languageVersionSettings, metadataVersion ) { declarationDescriptor -> - val index = declarationTable.descriptorTable.get(declarationDescriptor) + val index = descriptorTable.get(declarationDescriptor) index?.let { newJsDescriptorUniqId(it) } } diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrModuleSerializer.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrModuleSerializer.kt index d1e44b9dda6..e7dffdd50b5 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrModuleSerializer.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/lower/serialization/ir/JsIrModuleSerializer.kt @@ -6,13 +6,14 @@ package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir import org.jetbrains.kotlin.backend.common.LoggingContext +import org.jetbrains.kotlin.backend.common.serialization.DescriptorTable import org.jetbrains.kotlin.backend.common.serialization.IrModuleSerializer -import org.jetbrains.kotlin.backend.common.serialization.KotlinMangler import org.jetbrains.kotlin.ir.declarations.IrFile +import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns -class JsIrModuleSerializer(logger: LoggingContext, declarationTable: JsDeclarationTable) : - IrModuleSerializer(logger, JsMangler, declarationTable) { +class JsIrModuleSerializer(logger: LoggingContext, private val irBuiltIns: IrBuiltIns, private val descriptorTable: DescriptorTable) : + IrModuleSerializer(logger, JsMangler) { - - override fun createSerializerForFile(file: IrFile): JsIrFileSerializer = JsIrFileSerializer(logger, declarationTable) + override fun createSerializerForFile(file: IrFile): JsIrFileSerializer = + JsIrFileSerializer(logger, JsDeclarationTable(irBuiltIns, descriptorTable)) } \ No newline at end of file