[KLIB] Do not duplicate origin mapping per file

This commit is contained in:
Roman Artemev
2020-07-31 15:35:33 +03:00
committed by romanart
parent c253042948
commit 19b5fda750
@@ -1368,23 +1368,23 @@ abstract class IrFileDeserializer(
}
}
private val allKnownDeclarationOrigins =
IrDeclarationOrigin::class.nestedClasses.toList() + InnerClassesSupport.FIELD_FOR_OUTER_THIS::class
private val declarationOriginIndex =
allKnownDeclarationOrigins.map { it.objectInstance as IrDeclarationOriginImpl }.associateBy { it.name }
companion object {
private val allKnownDeclarationOrigins =
IrDeclarationOrigin::class.nestedClasses.toList() + InnerClassesSupport.FIELD_FOR_OUTER_THIS::class
private val declarationOriginIndex =
allKnownDeclarationOrigins.map { it.objectInstance as IrDeclarationOriginImpl }.associateBy { it.name }
private val allKnownStatementOrigins =
IrStatementOrigin::class.nestedClasses.toList()
private val statementOriginIndex =
allKnownStatementOrigins.mapNotNull { it.objectInstance as? IrStatementOriginImpl }.associateBy { it.debugName }
}
private fun deserializeIrDeclarationOrigin(protoName: Int): IrDeclarationOriginImpl {
val originName = deserializeString(protoName)
return declarationOriginIndex[originName] ?: object : IrDeclarationOriginImpl(originName) {}
}
private val allKnownStatementOrigins =
IrStatementOrigin::class.nestedClasses.toList()
private val statementOriginIndex =
allKnownStatementOrigins.map { it.objectInstance as? IrStatementOriginImpl }.filterNotNull().associateBy { it.debugName }
fun deserializeIrStatementOrigin(protoName: Int): IrStatementOrigin {
return deserializeString(protoName).let {
val componentPrefix = "COMPONENT_"