[KLIB] Do not duplicate origin mapping per file
This commit is contained in:
+10
-10
@@ -1368,23 +1368,23 @@ abstract class IrFileDeserializer(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val allKnownDeclarationOrigins =
|
companion object {
|
||||||
IrDeclarationOrigin::class.nestedClasses.toList() + InnerClassesSupport.FIELD_FOR_OUTER_THIS::class
|
private val allKnownDeclarationOrigins =
|
||||||
|
IrDeclarationOrigin::class.nestedClasses.toList() + InnerClassesSupport.FIELD_FOR_OUTER_THIS::class
|
||||||
private val declarationOriginIndex =
|
private val declarationOriginIndex =
|
||||||
allKnownDeclarationOrigins.map { it.objectInstance as IrDeclarationOriginImpl }.associateBy { it.name }
|
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 {
|
private fun deserializeIrDeclarationOrigin(protoName: Int): IrDeclarationOriginImpl {
|
||||||
val originName = deserializeString(protoName)
|
val originName = deserializeString(protoName)
|
||||||
return declarationOriginIndex[originName] ?: object : IrDeclarationOriginImpl(originName) {}
|
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 {
|
fun deserializeIrStatementOrigin(protoName: Int): IrStatementOrigin {
|
||||||
return deserializeString(protoName).let {
|
return deserializeString(protoName).let {
|
||||||
val componentPrefix = "COMPONENT_"
|
val componentPrefix = "COMPONENT_"
|
||||||
|
|||||||
Reference in New Issue
Block a user