JVM_IR: reconstruct fake overrides after IR deserialization.
We need to keep track of local signatures for deserialized symbols.
This commit is contained in:
committed by
TeamCityServer
parent
a63cc95a2a
commit
7bbc04b6a2
+5
-6
@@ -42,7 +42,7 @@ class FakeOverrideGlobalDeclarationTable(
|
||||
fun clear() = table.clear()
|
||||
}
|
||||
|
||||
class FakeOverrideDeclarationTable(
|
||||
open class FakeOverrideDeclarationTable(
|
||||
mangler: KotlinMangler.IrMangler,
|
||||
globalTable: FakeOverrideGlobalDeclarationTable = FakeOverrideGlobalDeclarationTable(mangler)
|
||||
) : DeclarationTable(globalTable) {
|
||||
@@ -71,15 +71,14 @@ class FakeOverrideBuilder(
|
||||
val symbolTable: SymbolTable,
|
||||
mangler: KotlinMangler.IrMangler,
|
||||
typeSystem: IrTypeSystemContext,
|
||||
val platformSpecificClassFilter: FakeOverrideClassFilter = DefaultFakeOverrideClassFilter
|
||||
val platformSpecificClassFilter: FakeOverrideClassFilter = DefaultFakeOverrideClassFilter,
|
||||
// TODO: The declaration table is needed for the signaturer.
|
||||
private val fakeOverrideDeclarationTable: DeclarationTable = FakeOverrideDeclarationTable(mangler),
|
||||
) : FakeOverrideBuilderStrategy() {
|
||||
private val haveFakeOverrides = mutableSetOf<IrClass>()
|
||||
|
||||
private val irOverridingUtil = IrOverridingUtil(typeSystem, this)
|
||||
|
||||
// TODO: The declaration table is needed for the signaturer.
|
||||
private val fakeOverrideDeclarationTable = FakeOverrideDeclarationTable(mangler)
|
||||
|
||||
// private class CompatibilityMode(val oldSignatures: Boolean)
|
||||
|
||||
private val fakeOverrideCandidates = mutableMapOf<IrClass, CompatibilityMode>()
|
||||
@@ -169,7 +168,7 @@ class FakeOverrideBuilder(
|
||||
}
|
||||
}
|
||||
|
||||
private fun provideFakeOverrides(klass: IrClass, compatibleMode: CompatibilityMode) {
|
||||
fun provideFakeOverrides(klass: IrClass, compatibleMode: CompatibilityMode) {
|
||||
buildFakeOverrideChainsForClass(klass, compatibleMode)
|
||||
irOverridingUtil.clear()
|
||||
haveFakeOverrides.add(klass)
|
||||
|
||||
Reference in New Issue
Block a user