[IR] Split declaration & descriptor tables
This commit is contained in:
@@ -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
-5
@@ -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))
|
||||
}
|
||||
Reference in New Issue
Block a user