K2: simplify visibility check for static qualifiers
This commit is contained in:
committed by
Space Team
parent
104fd4c14d
commit
e46978f7b3
@@ -121,6 +121,17 @@ abstract class FirVisibilityChecker : FirSessionComponent {
|
|||||||
|
|
||||||
if (skipCheckForContainingClassVisibility) return true
|
if (skipCheckForContainingClassVisibility) return true
|
||||||
|
|
||||||
|
if (staticQualifierClassForCallable != null) {
|
||||||
|
return isSpecificDeclarationVisible(
|
||||||
|
staticQualifierClassForCallable,
|
||||||
|
session,
|
||||||
|
useSiteFile,
|
||||||
|
containingDeclarations,
|
||||||
|
dispatchReceiver = null,
|
||||||
|
isCallToPropertySetter,
|
||||||
|
supertypeSupplier
|
||||||
|
)
|
||||||
|
}
|
||||||
val parentClass = declaration.containingNonLocalClass(
|
val parentClass = declaration.containingNonLocalClass(
|
||||||
session,
|
session,
|
||||||
dispatchReceiver,
|
dispatchReceiver,
|
||||||
@@ -128,14 +139,8 @@ abstract class FirVisibilityChecker : FirSessionComponent {
|
|||||||
supertypeSupplier
|
supertypeSupplier
|
||||||
) ?: return true
|
) ?: return true
|
||||||
return generateSequence(parentClass) { it.containingNonLocalClass(session) }.all { parent ->
|
return generateSequence(parentClass) { it.containingNonLocalClass(session) }.all { parent ->
|
||||||
val classLikeToCheck =
|
|
||||||
if (staticQualifierClassForCallable?.isSubClass(parent.symbol.toLookupTag(), session, supertypeSupplier) == true) {
|
|
||||||
staticQualifierClassForCallable
|
|
||||||
} else {
|
|
||||||
parent
|
|
||||||
}
|
|
||||||
isSpecificDeclarationVisible(
|
isSpecificDeclarationVisible(
|
||||||
classLikeToCheck,
|
parent,
|
||||||
session,
|
session,
|
||||||
useSiteFile,
|
useSiteFile,
|
||||||
containingDeclarations,
|
containingDeclarations,
|
||||||
|
|||||||
Reference in New Issue
Block a user