[IR] Partial linkage fix: Implement abstract fake overrides in non-abstract classes so that there are no call sites that still refer to abstract fake overrides

^KT-53663
This commit is contained in:
Dmitriy Dolovov
2022-08-31 12:10:00 +02:00
parent cb20998d93
commit 71d51801ce
12 changed files with 177 additions and 201 deletions
@@ -160,7 +160,8 @@ fun makeSimpleFakeOverrideBuilder(
JvmIrMangler,
typeSystemContext,
fakeOverrideDeclarationTable = PrePopulatedDeclarationTable(symbolDeserializer.deserializedSymbols),
friendModules = emptyMap() // TODO: provide friend modules
friendModules = emptyMap(), // TODO: provide friend modules
partialLinkageEnabled = false
)
}
@@ -43,8 +43,14 @@ class JvmIrLinker(
private val enableIdSignatures: Boolean,
) : KotlinIrLinker(currentModule, messageLogger, typeSystem.irBuiltIns, symbolTable, emptyList(), partialLinkageEnabled = false) {
// TODO: provide friend modules
override val fakeOverrideBuilder = FakeOverrideBuilder(this, symbolTable, JvmIrMangler, typeSystem, emptyMap())
override val fakeOverrideBuilder = FakeOverrideBuilder(
linker = this,
symbolTable = symbolTable,
mangler = JvmIrMangler,
typeSystem = typeSystem,
friendModules = emptyMap(), // TODO: provide friend modules
partialLinkageEnabled = false
)
private val javaName = Name.identifier("java")