[IR] Properly serialize IrDeclarationOrigin.GeneratedByPlugin to klibs

^KT-56911 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-03-28 12:37:36 +03:00
committed by Space Team
parent 12b11bd034
commit c957a0b43b
14 changed files with 111 additions and 27 deletions
@@ -779,9 +779,11 @@ class IrDeclarationDeserializer(
allKnownDeclarationOrigins.mapNotNull { it.objectInstance as? IrDeclarationOriginImpl }.associateBy { it.name }
}
private fun deserializeIrDeclarationOrigin(protoName: Int): IrDeclarationOriginImpl {
private fun deserializeIrDeclarationOrigin(protoName: Int): IrDeclarationOrigin {
val originName = libraryFile.string(protoName)
return declarationOriginIndex[originName] ?: object : IrDeclarationOriginImpl(originName) {}
return IrDeclarationOrigin.GeneratedByPlugin.fromSerializedString(originName)
?: declarationOriginIndex[originName]
?: object : IrDeclarationOriginImpl(originName) {}
}
fun deserializeDeclaration(proto: ProtoDeclaration, setParent: Boolean = true): IrDeclaration {
@@ -183,7 +183,7 @@ open class IrFileSerializer(
/* ------- Common fields ---------------------------------------------------- */
private fun serializeIrDeclarationOrigin(origin: IrDeclarationOrigin): Int = serializeString((origin as IrDeclarationOriginImpl).name)
private fun serializeIrDeclarationOrigin(origin: IrDeclarationOrigin): Int = serializeString(origin.name)
private fun serializeIrStatementOrigin(origin: IrStatementOrigin): Int =
serializeString((origin as? IrStatementOriginImpl)?.debugName ?: error("Unable to serialize origin ${origin.javaClass.name}"))