diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/IrOverridingUtil.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/IrOverridingUtil.kt index 826cedb9c53..5c353060a87 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/IrOverridingUtil.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/IrOverridingUtil.kt @@ -194,7 +194,7 @@ class IrOverridingUtil( toFilter: Collection ): Collection { return toFilter.filter { member: IrOverridableMember -> - !Visibilities.isPrivate(member.visibility) && isVisibleIgnoringReceiver(member.original, current) + !Visibilities.isPrivate(member.visibility) } } diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/IrVisibilityUtil.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/IrVisibilityUtil.kt index 33a1b173821..69ff50e52c5 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/IrVisibilityUtil.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/overrides/IrVisibilityUtil.kt @@ -11,40 +11,11 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue // The contents of this file is from VisibilityUtil.kt adapted to IR. // TODO: The code would better be commonized for descriptors, ir and fir. -private fun findInvisibleMember( - receiver: ReceiverValue?, - what: IrDeclarationWithVisibility, - from: IrDeclaration -): IrDeclarationWithVisibility? { - // TODO: We need the proper code for IR, - // but that requires many of Visibilities.java available in IR. - // So for now we stick to a quick hack serving the needs - // of fake override construction algorithm. - val parentsWithSelf = sequenceOf(what) + what.parents - parentsWithSelf.forEach { - if (it !is IrDeclarationWithVisibility) return null - if (it.visibility == Visibilities.INTERNAL && - (from.module != it.module) - ) { - return it - } - } - return null -} - -fun isVisibleIgnoringReceiver( - what: IrDeclarationWithVisibility, - from: IrDeclaration -): Boolean { - return findInvisibleMember(Visibilities.ALWAYS_SUITABLE_RECEIVER, what, from) == null -} - fun isVisibleForOverride( overriding: IrOverridableMember, fromSuper: IrOverridableMember ): Boolean { - return !Visibilities.isPrivate((fromSuper as IrDeclarationWithVisibility).visibility) && - isVisibleIgnoringReceiver(fromSuper, overriding) + return !Visibilities.isPrivate((fromSuper as IrDeclarationWithVisibility).visibility) } fun findMemberWithMaxVisibility(members: Collection): IrOverridableMember {