IR: support IrExternalOverridabilityCondition in IrOverrideChecker

The code is analogous to OverridingUtil and
ExternalOverridabilityCondition.
This commit is contained in:
Alexander Udalov
2023-09-05 19:57:31 +02:00
parent 86eb79e095
commit f9712597e1
7 changed files with 115 additions and 12 deletions
@@ -37,7 +37,7 @@ internal class ActualFakeOverridesAdder(
private val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
private val typeSystemContext: IrTypeSystemContext
) : IrElementVisitorVoid {
private val overrideChecker = IrOverrideChecker(typeSystemContext)
private val overrideChecker = IrOverrideChecker(typeSystemContext, emptyList())
private val missingActualMembersMap = mutableMapOf<IrClass, FakeOverrideInfo>()
override fun visitClass(declaration: IrClass) {
@@ -93,7 +93,7 @@ internal class ActualFakeOverridesAdder(
@Suppress("UNCHECKED_CAST")
val override = klass.declarations.firstOrNull {
it is IrOverridableMember &&
overrideChecker.isOverridableByWithoutExternalConditions(
overrideChecker.isOverridableBy(
superMember = memberFromSupertype,
subMember = it,
checkIsInlineFlag = false,
@@ -76,7 +76,8 @@ class FakeOverrideRebuilder(
mangler,
typeSystemContext,
friendModules,
PartialLinkageSupportForLinker.DISABLED
PartialLinkageSupportForLinker.DISABLED,
externalOverridabilityConditions = emptyList(), // TODO: KT-61370, KT-61804.
)
fun rebuildFakeOverrides() {