From cb810234694b7652d24a2dd9cf370699a7f8b70c Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 3 Sep 2014 16:19:29 +0400 Subject: [PATCH] Minor, fix warnings and formatting in QualifiedExpressionResolver --- .../resolve/QualifiedExpressionResolver.java | 139 ++++++++++++------ 1 file changed, 92 insertions(+), 47 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/QualifiedExpressionResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/QualifiedExpressionResolver.java index 44b0049fb23..eb684e95213 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/QualifiedExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/QualifiedExpressionResolver.java @@ -51,7 +51,7 @@ public class QualifiedExpressionResolver { EVERYTHING } - @KotlinSignature( "fun analyseImportReference(importDirective: JetImportDirective, scope: JetScope, trace: BindingTrace, module: ModuleDescriptor): Collection") + @KotlinSignature("fun analyseImportReference(importDirective: JetImportDirective, scope: JetScope, trace: BindingTrace, module: ModuleDescriptor): Collection") @NotNull public Collection analyseImportReference( @NotNull JetImportDirective importDirective, @@ -119,10 +119,12 @@ public class QualifiedExpressionResolver { return descriptors; } - private boolean canImportMembersFrom(@NotNull Collection descriptors, - @NotNull JetSimpleNameExpression reference, @NotNull BindingTrace trace, @NotNull LookupMode lookupMode + private static boolean canImportMembersFrom( + @NotNull Collection descriptors, + @NotNull JetSimpleNameExpression reference, + @NotNull BindingTrace trace, + @NotNull LookupMode lookupMode ) { - if (lookupMode == LookupMode.ONLY_CLASSES) { return true; } @@ -130,7 +132,9 @@ public class QualifiedExpressionResolver { if (descriptors.size() == 1) { return canImportMembersFrom(descriptors.iterator().next(), reference, trace, lookupMode); } - TemporaryBindingTrace temporaryTrace = TemporaryBindingTrace.create(trace, "trace to find out if members can be imported from", reference); + + TemporaryBindingTrace temporaryTrace = + TemporaryBindingTrace.create(trace, "trace to find out if members can be imported from", reference); boolean canImport = false; for (DeclarationDescriptor descriptor : descriptors) { canImport |= canImportMembersFrom(descriptor, reference, temporaryTrace, lookupMode); @@ -141,8 +145,11 @@ public class QualifiedExpressionResolver { return canImport; } - private boolean canImportMembersFrom(@NotNull DeclarationDescriptor descriptor, - @NotNull JetSimpleNameExpression reference, @NotNull BindingTrace trace, @NotNull LookupMode lookupMode + private static boolean canImportMembersFrom( + @NotNull DeclarationDescriptor descriptor, + @NotNull JetSimpleNameExpression reference, + @NotNull BindingTrace trace, + @NotNull LookupMode lookupMode ) { assert lookupMode == LookupMode.EVERYTHING; @@ -157,13 +164,16 @@ public class QualifiedExpressionResolver { } @NotNull - public Collection lookupDescriptorsForUserType(@NotNull JetUserType userType, - @NotNull JetScope outerScope, @NotNull BindingTrace trace) { - + public Collection lookupDescriptorsForUserType( + @NotNull JetUserType userType, + @NotNull JetScope outerScope, + @NotNull BindingTrace trace + ) { if (userType.isAbsoluteInRootPackage()) { trace.report(Errors.UNSUPPORTED.on(userType, "package")); return Collections.emptyList(); } + JetSimpleNameExpression referenceExpression = userType.getReferenceExpression(); if (referenceExpression == null) { return Collections.emptyList(); @@ -177,19 +187,26 @@ public class QualifiedExpressionResolver { } @NotNull - public Collection lookupDescriptorsForQualifiedExpression(@NotNull JetQualifiedExpression importedReference, - @NotNull JetScope outerScope, @NotNull JetScope scopeToCheckVisibility, @NotNull BindingTrace trace, @NotNull LookupMode lookupMode, boolean storeResult) { - + public Collection lookupDescriptorsForQualifiedExpression( + @NotNull JetQualifiedExpression importedReference, + @NotNull JetScope outerScope, + @NotNull JetScope scopeToCheckVisibility, + @NotNull BindingTrace trace, + @NotNull LookupMode lookupMode, + boolean storeResult + ) { JetExpression receiverExpression = importedReference.getReceiverExpression(); Collection declarationDescriptors; if (receiverExpression instanceof JetQualifiedExpression) { - declarationDescriptors = lookupDescriptorsForQualifiedExpression((JetQualifiedExpression)receiverExpression, outerScope, scopeToCheckVisibility, trace, - lookupMode, storeResult); + declarationDescriptors = + lookupDescriptorsForQualifiedExpression((JetQualifiedExpression) receiverExpression, outerScope, scopeToCheckVisibility, + trace, lookupMode, storeResult); } else { assert receiverExpression instanceof JetSimpleNameExpression; - declarationDescriptors = lookupDescriptorsForSimpleNameReference((JetSimpleNameExpression)receiverExpression, outerScope, scopeToCheckVisibility, trace, - lookupMode, true, storeResult); + declarationDescriptors = + lookupDescriptorsForSimpleNameReference((JetSimpleNameExpression) receiverExpression, outerScope, + scopeToCheckVisibility, trace, lookupMode, true, storeResult); } JetExpression selectorExpression = importedReference.getSelectorExpression(); @@ -207,20 +224,24 @@ public class QualifiedExpressionResolver { } @NotNull - private Collection lookupSelectorDescriptors(@NotNull JetSimpleNameExpression selector, - @NotNull Collection declarationDescriptors, @NotNull BindingTrace trace, - @NotNull JetScope scopeToCheckVisibility, @NotNull LookupMode lookupMode, boolean storeResult) { - + private static Collection lookupSelectorDescriptors( + @NotNull JetSimpleNameExpression selector, + @NotNull Collection declarationDescriptors, + @NotNull BindingTrace trace, + @NotNull JetScope scopeToCheckVisibility, + @NotNull LookupMode lookupMode, + boolean storeResult + ) { Set results = Sets.newHashSet(); for (DeclarationDescriptor declarationDescriptor : declarationDescriptors) { if (declarationDescriptor instanceof PackageViewDescriptor) { - addResult(results, lookupSimpleNameReference(selector, ((PackageViewDescriptor)declarationDescriptor).getMemberScope(), + addResult(results, lookupSimpleNameReference(selector, ((PackageViewDescriptor) declarationDescriptor).getMemberScope(), lookupMode, true)); } if (declarationDescriptor instanceof ClassDescriptor) { - addResult(results, lookupSimpleNameReference(selector, getAppropriateScope((ClassDescriptor)declarationDescriptor, + addResult(results, lookupSimpleNameReference(selector, getAppropriateScope((ClassDescriptor) declarationDescriptor, lookupMode), lookupMode, false)); - ClassDescriptor classObjectDescriptor = ((ClassDescriptor)declarationDescriptor).getClassObjectDescriptor(); + ClassDescriptor classObjectDescriptor = ((ClassDescriptor) declarationDescriptor).getClassObjectDescriptor(); if (classObjectDescriptor != null) { addResult(results, lookupSimpleNameReference(selector, getAppropriateScope(classObjectDescriptor, lookupMode), lookupMode, false)); @@ -231,30 +252,42 @@ public class QualifiedExpressionResolver { } @NotNull - private JetScope getAppropriateScope(@NotNull ClassDescriptor classDescriptor, @NotNull LookupMode lookupMode) { - return lookupMode == LookupMode.ONLY_CLASSES ? classDescriptor.getUnsubstitutedInnerClassesScope() : classDescriptor.getDefaultType().getMemberScope(); + private static JetScope getAppropriateScope(@NotNull ClassDescriptor classDescriptor, @NotNull LookupMode lookupMode) { + return lookupMode == LookupMode.ONLY_CLASSES + ? classDescriptor.getUnsubstitutedInnerClassesScope() + : classDescriptor.getDefaultType().getMemberScope(); } - private void addResult(@NotNull Set results, @NotNull LookupResult result) { + private static void addResult(@NotNull Set results, @NotNull LookupResult result) { if (result == LookupResult.EMPTY) return; - results.add((SuccessfulLookupResult)result); + results.add((SuccessfulLookupResult) result); } @NotNull - public Collection lookupDescriptorsForSimpleNameReference(@NotNull JetSimpleNameExpression referenceExpression, - @NotNull JetScope outerScope, @NotNull JetScope scopeToCheckVisibility, @NotNull BindingTrace trace, @NotNull LookupMode lookupMode, boolean packageLevel, boolean storeResult) { - + @SuppressWarnings("MethodMayBeStatic") + public Collection lookupDescriptorsForSimpleNameReference( + @NotNull JetSimpleNameExpression referenceExpression, + @NotNull JetScope outerScope, + @NotNull JetScope scopeToCheckVisibility, + @NotNull BindingTrace trace, + @NotNull LookupMode lookupMode, + boolean packageLevel, + boolean storeResult + ) { LookupResult lookupResult = lookupSimpleNameReference(referenceExpression, outerScope, lookupMode, packageLevel); if (lookupResult == LookupResult.EMPTY) return Collections.emptyList(); - return filterAndStoreResolutionResult(Collections.singletonList((SuccessfulLookupResult)lookupResult), referenceExpression, trace, scopeToCheckVisibility, - lookupMode, storeResult); + return filterAndStoreResolutionResult(Collections.singletonList((SuccessfulLookupResult) lookupResult), referenceExpression, trace, + scopeToCheckVisibility, lookupMode, storeResult); } @NotNull - private LookupResult lookupSimpleNameReference(@NotNull JetSimpleNameExpression referenceExpression, - @NotNull JetScope outerScope, @NotNull LookupMode lookupMode, boolean packageLevel) { - + private static LookupResult lookupSimpleNameReference( + @NotNull JetSimpleNameExpression referenceExpression, + @NotNull JetScope outerScope, + @NotNull LookupMode lookupMode, + boolean packageLevel + ) { Name referencedName = referenceExpression.getReferencedNameAsName(); Set descriptors = Sets.newHashSet(); @@ -281,13 +314,18 @@ public class QualifiedExpressionResolver { } @NotNull - private Collection filterAndStoreResolutionResult(@NotNull Collection lookupResults, - @NotNull JetSimpleNameExpression referenceExpression, @NotNull final BindingTrace trace, @NotNull JetScope scopeToCheckVisibility, - @NotNull LookupMode lookupMode, boolean storeResult) { - + private static Collection filterAndStoreResolutionResult( + @NotNull Collection lookupResults, + @NotNull JetSimpleNameExpression referenceExpression, + @NotNull BindingTrace trace, + @NotNull JetScope scopeToCheckVisibility, + @NotNull LookupMode lookupMode, + boolean storeResult + ) { if (lookupResults.isEmpty()) { return Collections.emptyList(); } + Collection descriptors = Sets.newLinkedHashSet(); for (SuccessfulLookupResult lookupResult : lookupResults) { descriptors.addAll(lookupResult.descriptors); @@ -327,13 +365,14 @@ public class QualifiedExpressionResolver { return filteredDescriptors; } - private void storeResolutionResult(@NotNull Collection descriptors, + private static void storeResolutionResult( + @NotNull Collection descriptors, @NotNull Collection canBeImportedDescriptors, @NotNull JetSimpleNameExpression referenceExpression, @NotNull Collection possibleResolutionScopes, @NotNull BindingTrace trace, - @NotNull JetScope scopeToCheckVisibility) { - + @NotNull JetScope scopeToCheckVisibility + ) { assert canBeImportedDescriptors.size() <= descriptors.size(); assert !possibleResolutionScopes.isEmpty(); //todo completion here needs all possible resolution scopes, if there are many @@ -386,7 +425,7 @@ public class QualifiedExpressionResolver { * * @return true if method has successfully resolved ambiguity */ - private boolean resolveClassPackageAmbiguity( + private static boolean resolveClassPackageAmbiguity( @NotNull Collection filteredDescriptors, @NotNull JetSimpleNameExpression referenceExpression, @NotNull JetScope resolutionScope, @@ -420,10 +459,16 @@ public class QualifiedExpressionResolver { return false; } - private void checkVisibility(@NotNull DeclarationDescriptorWithVisibility descriptor, @NotNull BindingTrace trace, - @NotNull JetSimpleNameExpression referenceExpression, @NotNull JetScope scopeToCheckVisibility) { + private static void checkVisibility( + @NotNull DeclarationDescriptorWithVisibility descriptor, + @NotNull BindingTrace trace, + @NotNull JetSimpleNameExpression referenceExpression, + @NotNull JetScope scopeToCheckVisibility + ) { if (!Visibilities.isVisible(descriptor, scopeToCheckVisibility.getContainingDeclaration())) { - trace.report(INVISIBLE_REFERENCE.on(referenceExpression, descriptor, descriptor.getVisibility(), descriptor.getContainingDeclaration())); + //noinspection ConstantConditions + trace.report(INVISIBLE_REFERENCE.on(referenceExpression, descriptor, descriptor.getVisibility(), + descriptor.getContainingDeclaration())); } }