IR: pass also unsubstituted member to external conditions

In the future version of JavaIncompatibilityRulesOverridabilityCondition
for IR, we need to compute the original JVM signature of a declaration.
In descriptors, it's possible simply by using `original`.
This commit is contained in:
Alexander Udalov
2023-10-31 12:14:36 +01:00
committed by Space Team
parent e15894e98e
commit 39327a37cb
5 changed files with 41 additions and 29 deletions
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.overrides.IrOverrideChecker
import org.jetbrains.kotlin.ir.overrides.MemberWithOriginal
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
import org.jetbrains.kotlin.ir.symbols.IrSymbol
@@ -91,8 +92,8 @@ internal class ActualFakeOverridesAdder(
val override = klass.declarations.firstOrNull {
it is IrOverridableMember &&
overrideChecker.isOverridableBy(
superMember = memberFromSupertype,
subMember = it,
superMember = MemberWithOriginal(memberFromSupertype),
subMember = MemberWithOriginal(it),
checkIsInlineFlag = false,
).result == OverridingUtil.OverrideCompatibilityInfo.Result.OVERRIDABLE
} as? IrOverridableDeclaration<IrSymbol>