diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt index 48d56c7b8bc..2e7c117d68a 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt @@ -87,7 +87,7 @@ abstract class FirVisibilityChecker : FirSessionComponent { supertypeSupplier: SupertypeSupplier = SupertypeSupplier.Default ): Boolean { if (!isSpecificDeclarationVisible( - declaration, + if (declaration is FirCallableDeclaration) declaration.originalOrSelf() else declaration, session, useSiteFile, containingDeclarations, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/VisibilityUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/VisibilityUtils.kt index d7dccf43dab..89e6ea3ed23 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/VisibilityUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/VisibilityUtils.kt @@ -28,27 +28,16 @@ fun FirVisibilityChecker.isVisible( declaration: FirMemberDeclaration, callInfo: CallInfo, dispatchReceiverValue: ReceiverValue? -): Boolean { - if (declaration is FirCallableDeclaration && (declaration.isIntersectionOverride || declaration.isSubstitutionOverride)) { - @Suppress("UNCHECKED_CAST") - return isVisible(declaration.originalIfFakeOverride() as FirMemberDeclaration, callInfo, dispatchReceiverValue) - } - - val useSiteFile = callInfo.containingFile - val containingDeclarations = callInfo.containingDeclarations - val session = callInfo.session - - return isVisible( +): Boolean = + isVisible( declaration, - session, - useSiteFile, - containingDeclarations, + callInfo.session, + callInfo.containingFile, + callInfo.containingDeclarations, dispatchReceiverValue, callInfo.callSite is FirVariableAssignment ) -} - fun FirVisibilityChecker.isVisible( declaration: FirMemberDeclaration, candidate: Candidate @@ -66,14 +55,7 @@ fun FirVisibilityChecker.isVisible( val backingField = declaration.getBackingFieldIfApplicable() if (backingField != null) { - candidate.hasVisibleBackingField = isVisible( - backingField, - callInfo.session, - callInfo.containingFile, - callInfo.containingDeclarations, - candidate.dispatchReceiverValue, - candidate.callInfo.callSite is FirVariableAssignment, - ) + candidate.hasVisibleBackingField = isVisible(backingField, callInfo, candidate.dispatchReceiverValue) } return true