Allow count non-imported descriptors for empty prefix in qualified expression - important for extension functions

This commit is contained in:
Nikolay Krasko
2012-03-12 21:25:22 +04:00
parent 55b0ea1e60
commit d8f2e23979
@@ -32,10 +32,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetQualifiedExpression;
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
import org.jetbrains.jet.lang.psi.JetTypeReference;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lexer.JetTokens;
import org.jetbrains.jet.plugin.caches.JetCacheManager;
@@ -84,8 +81,15 @@ public class JetCompletionContributor extends CompletionContributor {
String prefix = result.getPrefixMatcher().getPrefix();
if (prefix.isEmpty() && parameters.getInvocationCount() < 2) {
return;
// Try to avoid computing not-imported descriptors for empty prefix
if (prefix.isEmpty()) {
if (parameters.getInvocationCount() < 2) {
return;
}
if (PsiTreeUtil.getParentOfType(jetReference.getElement(), JetDotQualifiedExpression.class) == null) {
return;
}
}
if (shouldRunTopLevelCompletion(parameters, prefix)) {