diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index f6a2dbd6678..682b4aac58c 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -371,7 +371,7 @@ internal fun FirSimpleFunction.processOverriddenFunctionSymbols( scope.processFunctionsByName(name) {} scope.processOverriddenFunctionsFromSuperClasses(symbol, containingClass) { overriddenSymbol -> if (!session.visibilityChecker.isVisibleForOverriding( - session, candidateInDerivedClass = symbol.fir, candidateInBaseClass = overriddenSymbol.fir + candidateInDerivedClass = symbol.fir, candidateInBaseClass = overriddenSymbol.fir ) ) { return@processOverriddenFunctionsFromSuperClasses ProcessorAction.NEXT @@ -446,7 +446,7 @@ internal fun FirProperty.processOverriddenPropertySymbols( val overriddenSet = mutableSetOf() scope.processOverriddenPropertiesFromSuperClasses(symbol, containingClass) { overriddenSymbol -> if (!session.visibilityChecker.isVisibleForOverriding( - session, candidateInDerivedClass = symbol.fir, candidateInBaseClass = overriddenSymbol.fir + candidateInDerivedClass = symbol.fir, candidateInBaseClass = overriddenSymbol.fir ) ) { return@processOverriddenPropertiesFromSuperClasses ProcessorAction.NEXT @@ -482,7 +482,7 @@ internal fun FirProperty.generateOverriddenAccessorSymbols(containingClass: FirC scope.processOverriddenPropertiesFromSuperClasses(symbol, containingClass) { overriddenSymbol -> if (!session.visibilityChecker.isVisibleForOverriding( - session, candidateInDerivedClass = symbol.fir, candidateInBaseClass = overriddenSymbol.fir + candidateInDerivedClass = symbol.fir, candidateInBaseClass = overriddenSymbol.fir ) ) { return@processOverriddenPropertiesFromSuperClasses ProcessorAction.NEXT diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index 848eaded656..07a588ba17e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -203,7 +203,7 @@ class FakeOverrideGenerator( // But they are treated differently in IR (real declarations have already been declared before) and such methods are present among realDeclarationSymbols if (originalSymbol in realDeclarationSymbols) return - if (!session.visibilityChecker.isVisibleForOverriding(session, klass.moduleData, klass.symbol, originalDeclaration)) return + if (!session.visibilityChecker.isVisibleForOverriding(klass.moduleData, klass.symbol, originalDeclaration)) return val origin = IrDeclarationOrigin.FAKE_OVERRIDE val baseSymbol = originalSymbol.unwrapSubstitutionAndIntersectionOverrides() as S diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaVisibilityChecker.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaVisibilityChecker.kt index e21449eb4a1..c09f1e1cfcf 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaVisibilityChecker.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaVisibilityChecker.kt @@ -57,7 +57,6 @@ object FirJavaVisibilityChecker : FirVisibilityChecker() { } override fun platformOverrideVisibilityCheck( - session: FirSession, candidateInDerivedClass: FirBasedSymbol<*>, symbolInBaseClass: FirBasedSymbol<*>, visibilityInBaseClass: Visibility, 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 1641856dd1c..dff33b9e5b2 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt @@ -64,7 +64,6 @@ abstract class FirVisibilityChecker : FirSessionComponent { } override fun platformOverrideVisibilityCheck( - session: FirSession, candidateInDerivedClass: FirBasedSymbol<*>, symbolInBaseClass: FirBasedSymbol<*>, visibilityInBaseClass: Visibility, @@ -117,28 +116,23 @@ abstract class FirVisibilityChecker : FirSessionComponent { } fun isVisibleForOverriding( - session: FirSession, candidateInDerivedClass: FirMemberDeclaration, candidateInBaseClass: FirMemberDeclaration - ): Boolean = isVisibleForOverriding(session, candidateInDerivedClass.moduleData, candidateInDerivedClass.symbol, candidateInBaseClass) + ): Boolean = isVisibleForOverriding(candidateInDerivedClass.moduleData, candidateInDerivedClass.symbol, candidateInBaseClass) fun isVisibleForOverriding( - session: FirSession, derivedClassModuleData: FirModuleData, symbolFromDerivedClass: FirBasedSymbol<*>, candidateInBaseClass: FirMemberDeclaration, ): Boolean = when (candidateInBaseClass.visibility) { Visibilities.Internal -> { candidateInBaseClass.moduleData == derivedClassModuleData || - (derivedClassModuleData == session.moduleData && - session.moduleVisibilityChecker?.isInFriendModule(candidateInBaseClass) == true) + derivedClassModuleData.session.moduleVisibilityChecker?.isInFriendModule(candidateInBaseClass) == true } Visibilities.Private, Visibilities.PrivateToThis -> false Visibilities.Protected -> true - else -> platformOverrideVisibilityCheck( - session, symbolFromDerivedClass, candidateInBaseClass.symbol, candidateInBaseClass.visibility - ) + else -> platformOverrideVisibilityCheck(symbolFromDerivedClass, candidateInBaseClass.symbol, candidateInBaseClass.visibility) } private fun FirMemberDeclaration.containingNonLocalClass( @@ -261,7 +255,6 @@ abstract class FirVisibilityChecker : FirSessionComponent { ): Boolean protected abstract fun platformOverrideVisibilityCheck( - session: FirSession, candidateInDerivedClass: FirBasedSymbol<*>, symbolInBaseClass: FirBasedSymbol<*>, visibilityInBaseClass: Visibility, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt index 833ec641fc8..4be24f9557c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt @@ -95,7 +95,7 @@ class FirStatusResolver( scope.processPropertiesByName(property.name) {} scope.processDirectOverriddenPropertiesWithBaseScope(property.symbol) { overriddenSymbol, _ -> if (session.visibilityChecker.isVisibleForOverriding( - session, candidateInDerivedClass = property, candidateInBaseClass = overriddenSymbol.fir + candidateInDerivedClass = property, candidateInBaseClass = overriddenSymbol.fir ) ) { this += overriddenSymbol.fir @@ -135,7 +135,7 @@ class FirStatusResolver( scope.processFunctionsByName(function.name) {} scope.processDirectOverriddenFunctionsWithBaseScope(symbol) { overriddenSymbol, _ -> if (session.visibilityChecker.isVisibleForOverriding( - session, candidateInDerivedClass = function, candidateInBaseClass = overriddenSymbol.fir + candidateInDerivedClass = function, candidateInBaseClass = overriddenSymbol.fir ) ) { this += overriddenSymbol.fir