Don't check class object visibility when it's in qualifier position
(visibility for member is checked anyway). It might be better to underline invisible qualifier in a chain (class or class object), not the last one (member) - for later improvement.
This commit is contained in:
@@ -149,7 +149,6 @@ private fun QualifierReceiver.resolveAsReceiverInQualifiedExpression(context: Ex
|
||||
context.trace.report(TYPE_PARAMETER_ON_LHS_OF_DOT.on(referenceExpression, classifier as TypeParameterDescriptor))
|
||||
}
|
||||
else if (classifier is ClassDescriptor && classifier.getClassObjectDescriptor() != null) {
|
||||
checkClassObjectVisibility(context)
|
||||
context.trace.record(EXPRESSION_TYPE, referenceExpression, classifier.getClassObjectType())
|
||||
}
|
||||
}
|
||||
@@ -183,16 +182,3 @@ private fun QualifierReceiver.resolveReferenceTarget(selector: DeclarationDescri
|
||||
|
||||
return descriptor
|
||||
}
|
||||
|
||||
private fun QualifierReceiver.checkClassObjectVisibility(context: ExpressionTypingContext) {
|
||||
if (classifier !is ClassDescriptor) return
|
||||
|
||||
val scopeContainer = context.scope.getContainingDeclaration()
|
||||
val classObject = classifier.getClassObjectDescriptor()
|
||||
assert(classObject != null) { "This check should be done only for classes with class objects: " + classifier }
|
||||
if (!Visibilities.isVisible(classObject!!, scopeContainer)) {
|
||||
context.trace.report(INVISIBLE_MEMBER.on(referenceExpression, classObject, classObject.getVisibility(), scopeContainer))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user