IR: fix deserialization of publicly visible type parameters
This commit is contained in:
committed by
TeamCityServer
parent
3cc883cf7b
commit
b6ddd758ec
+11
-2
@@ -260,8 +260,17 @@ class IrDeclarationDeserializer(
|
|||||||
} else {
|
} else {
|
||||||
val symbolData = BinarySymbolData.decode(proto.base.symbol)
|
val symbolData = BinarySymbolData.decode(proto.base.symbol)
|
||||||
sig = symbolDeserializer.deserializeIdSignature(symbolData.signatureId)
|
sig = symbolDeserializer.deserializeIdSignature(symbolData.signatureId)
|
||||||
declareScopedTypeParameter(sig, {
|
declareScopedTypeParameter(
|
||||||
if (it.isPubliclyVisible) IrTypeParameterPublicSymbolImpl(it) else IrTypeParameterSymbolImpl() }, factory)
|
sig,
|
||||||
|
{
|
||||||
|
if (it.isPubliclyVisible)
|
||||||
|
symbolDeserializer.deserializeIrSymbol(
|
||||||
|
sig, BinarySymbolData.SymbolKind.TYPE_PARAMETER_SYMBOL
|
||||||
|
) as IrTypeParameterSymbol
|
||||||
|
else IrTypeParameterSymbolImpl()
|
||||||
|
},
|
||||||
|
factory
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -69,7 +69,7 @@ fun deserializeFromByteArray(
|
|||||||
fileSymbol = dummyIrFile.symbol,
|
fileSymbol = dummyIrFile.symbol,
|
||||||
/* TODO */ actuals = emptyList(),
|
/* TODO */ actuals = emptyList(),
|
||||||
enqueueLocalTopLevelDeclaration = {}, // just link to it in symbolTable
|
enqueueLocalTopLevelDeclaration = {}, // just link to it in symbolTable
|
||||||
handleExpectActualMapping = { _, _ -> TODO() }
|
handleExpectActualMapping = { _, symbol -> symbol } no expect declarations
|
||||||
) { idSignature, symbolKind ->
|
) { idSignature, symbolKind ->
|
||||||
referencePublicSymbol(symbolTable, descriptorFinder, idSignature, symbolKind)
|
referencePublicSymbol(symbolTable, descriptorFinder, idSignature, symbolKind)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user