[KLIB] Don't resolve delegated symbol where it could be existed

This commit is contained in:
Roman Artemev
2021-07-29 19:25:48 +03:00
committed by teamcityserver
parent 297e0a9f43
commit 11f70412e7
2 changed files with 6 additions and 2 deletions
@@ -458,7 +458,7 @@ class IrBodyDeserializer(
}
private fun deserializeGetValue(proto: ProtoGetValue, start: Int, end: Int, type: IrType): IrGetValue {
val symbol = declarationDeserializer.deserializeIrSymbolAndRemap(proto.symbol) as IrValueSymbol
val symbol = declarationDeserializer.deserializeIrSymbol(proto.symbol) as IrValueSymbol
val origin = if (proto.hasOriginName()) deserializeIrStatementOrigin(proto.originName) else null
// TODO: origin!
return IrGetValueImpl(start, end, type, symbol, origin)
@@ -569,7 +569,7 @@ class IrBodyDeserializer(
}
private fun deserializeSetValue(proto: ProtoSetValue, start: Int, end: Int): IrSetValue {
val symbol = declarationDeserializer.deserializeIrSymbolAndRemap(proto.symbol) as IrValueSymbol
val symbol = declarationDeserializer.deserializeIrSymbol(proto.symbol) as IrValueSymbol
val value = deserializeExpression(proto.value)
val origin = if (proto.hasOriginName()) deserializeIrStatementOrigin(proto.originName) else null
return IrSetValueImpl(start, end, builtIns.unitType, symbol, value, origin)
@@ -189,6 +189,10 @@ class IrDeclarationDeserializer(
// Delegating symbol maps to it's delegate only inside the declaration the symbol belongs to.
private val delegatedSymbolMap = mutableMapOf<IrSymbol, IrSymbol>()
internal fun deserializeIrSymbol(code: Long): IrSymbol {
return symbolDeserializer.deserializeIrSymbol(code)
}
internal fun deserializeIrSymbolAndRemap(code: Long): IrSymbol {
// TODO: could be simplified
return symbolDeserializer.deserializeIrSymbol(code).let {