[JS IR BE] Split IrModule/IrFile serializers
This commit is contained in:
+29
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.serialization
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.LoggingContext
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
|
||||
import org.jetbrains.kotlin.library.IrIrSerializedIrFile
|
||||
import org.jetbrains.kotlin.library.SerializedIrModule
|
||||
|
||||
abstract class IrModuleSerializer<F : IrFileSerializer>(protected val logger: LoggingContext,
|
||||
protected val mangler: KotlinMangler,
|
||||
protected val declarationTable: DeclarationTable) {
|
||||
|
||||
|
||||
abstract fun createSerializerForFile(file: IrFile): F
|
||||
|
||||
private fun serializeIrFile(file: IrFile): IrIrSerializedIrFile {
|
||||
val fileSerializer = createSerializerForFile(file)
|
||||
return fileSerializer.serializeIrFile(file)
|
||||
}
|
||||
|
||||
fun serializedIrModule(module: IrModuleFragment): SerializedIrModule {
|
||||
return SerializedIrModule(module.files.map { serializeIrFile(it) })
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.LoggingContext
|
||||
import org.jetbrains.kotlin.backend.common.serialization.IrFileSerializer
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
|
||||
|
||||
class JsIrFileSerializer(
|
||||
logger: LoggingContext,
|
||||
declarationTable: DeclarationTable,
|
||||
bodiesOnlyForInlines: Boolean = false
|
||||
) : IrFileSerializer(logger, declarationTable, JsMangler, bodiesOnlyForInlines)
|
||||
+8
-6
@@ -7,10 +7,12 @@ package org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.LoggingContext
|
||||
import org.jetbrains.kotlin.backend.common.serialization.IrModuleSerializer
|
||||
import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
|
||||
import org.jetbrains.kotlin.backend.common.serialization.KotlinMangler
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||
|
||||
class JsIrModuleSerializer(
|
||||
logger: LoggingContext,
|
||||
declarationTable: DeclarationTable,
|
||||
bodiesOnlyForInlines: Boolean = false
|
||||
) : IrModuleSerializer(logger, declarationTable, JsMangler, bodiesOnlyForInlines)
|
||||
class JsIrModuleSerializer(logger: LoggingContext, declarationTable: JsDeclarationTable) :
|
||||
IrModuleSerializer<JsIrFileSerializer>(logger, JsMangler, declarationTable) {
|
||||
|
||||
|
||||
override fun createSerializerForFile(file: IrFile): JsIrFileSerializer = JsIrFileSerializer(logger, declarationTable)
|
||||
}
|
||||
Reference in New Issue
Block a user