added classes visibility check
This commit is contained in:
@@ -56,6 +56,7 @@ public interface Errors {
|
||||
});
|
||||
|
||||
UnresolvedReferenceDiagnosticFactory UNRESOLVED_REFERENCE = UnresolvedReferenceDiagnosticFactory.create("Unresolved reference");
|
||||
DiagnosticFactory2<JetSimpleNameExpression, DeclarationDescriptor, DeclarationDescriptor> INVISIBLE_MEMBER = DiagnosticFactory2.create(ERROR, "''{0}'' has private access in ''{1}''", NAME, NAME);
|
||||
|
||||
RedeclarationDiagnosticFactory REDECLARATION = RedeclarationDiagnosticFactory.REDECLARATION;
|
||||
RedeclarationDiagnosticFactory NAME_SHADOWING = RedeclarationDiagnosticFactory.NAME_SHADOWING;
|
||||
|
||||
@@ -274,6 +274,11 @@ public class TypeResolver {
|
||||
.lookupDescriptorsForUserType(userType, scope, trace);
|
||||
for (DeclarationDescriptor descriptor : descriptors) {
|
||||
if (descriptor instanceof ClassifierDescriptor) {
|
||||
if (descriptor instanceof ClassDescriptor && !Visibilities.isVisible((ClassDescriptor)descriptor, scope.getContainingDeclaration())) {
|
||||
JetSimpleNameExpression referenceExpression = userType.getReferenceExpression();
|
||||
assert referenceExpression != null;
|
||||
trace.report(INVISIBLE_MEMBER.on(referenceExpression, descriptor, ((ClassDescriptor)descriptor).getContainingDeclaration()));
|
||||
}
|
||||
return (ClassifierDescriptor) descriptor;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user