[IR] Split declaration & descriptor tables

This commit is contained in:
Roman Artemev
2019-08-08 14:05:42 +03:00
committed by romanart
parent a7714a5589
commit 1465121266
2 changed files with 10 additions and 7 deletions
@@ -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) }
}
@@ -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<JsIrFileSerializer>(logger, JsMangler, declarationTable) {
class JsIrModuleSerializer(logger: LoggingContext, private val irBuiltIns: IrBuiltIns, private val descriptorTable: DescriptorTable) :
IrModuleSerializer<JsIrFileSerializer>(logger, JsMangler) {
override fun createSerializerForFile(file: IrFile): JsIrFileSerializer = JsIrFileSerializer(logger, declarationTable)
override fun createSerializerForFile(file: IrFile): JsIrFileSerializer =
JsIrFileSerializer(logger, JsDeclarationTable(irBuiltIns, descriptorTable))
}