[Private fake overrides] FakeOverrideDeclarationTable for private fake override construction
This commit is contained in:
+16
-2
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.common.overrides
|
package org.jetbrains.kotlin.backend.common.overrides
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.backend.common.serialization.DeclarationTable
|
||||||
|
import org.jetbrains.kotlin.backend.common.serialization.GlobalDeclarationTable
|
||||||
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer
|
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
|
||||||
@@ -36,8 +38,20 @@ import org.jetbrains.kotlin.ir.types.getClass
|
|||||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
interface PlatformFakeOverrideClassFilter {
|
class FakeOverrideGlobalDeclarationTable(signatureSerializer: IdSignatureSerializer)
|
||||||
fun constructFakeOverrides(clazz: IrClass): Boolean = true
|
: GlobalDeclarationTable(signatureSerializer, signatureSerializer.mangler) {
|
||||||
|
|
||||||
|
fun clear() = table.clear()
|
||||||
|
}
|
||||||
|
class FakeOverrideDeclarationTable(
|
||||||
|
signatureSerializer: IdSignatureSerializer,
|
||||||
|
globalTable: FakeOverrideGlobalDeclarationTable = FakeOverrideGlobalDeclarationTable(signatureSerializer)
|
||||||
|
) : DeclarationTable(globalTable) {
|
||||||
|
override val globalDeclarationTable: FakeOverrideGlobalDeclarationTable = globalTable
|
||||||
|
fun clear() {
|
||||||
|
this.table.clear()
|
||||||
|
globalDeclarationTable.clear()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
object DefaultFakeOverrideClassFilter : PlatformFakeOverrideClassFilter
|
object DefaultFakeOverrideClassFilter : PlatformFakeOverrideClassFilter
|
||||||
|
|||||||
Reference in New Issue
Block a user