IDEA-83918 Error completion behaviour for methods in imports.

This commit is contained in:
peter
2012-04-25 22:12:42 +02:00
parent 0b7b3518ad
commit 39b1487491
6 changed files with 21 additions and 3 deletions
@@ -449,7 +449,7 @@ public class JavaCompletionUtil {
final Set<PsiMember> mentioned = new THashSet<PsiMember>();
for (CompletionElement completionElement : processor.getResults()) {
LookupElement item = createLookupElement(completionElement);
LookupElement item = createLookupElement(completionElement, javaReference);
if (item != null) {
item.putUserData(QUALIFIER_TYPE_ATTR, qualifierType);
final Object o = item.getObject();
@@ -603,10 +603,15 @@ public class JavaCompletionUtil {
}), 1);
}
private static LookupElement createLookupElement(CompletionElement completionElement) {
private static LookupElement createLookupElement(CompletionElement completionElement, PsiJavaReference reference) {
Object completion = completionElement.getElement();
assert !(completion instanceof LookupElement);
if (completion instanceof PsiMethod &&
reference instanceof PsiJavaCodeReferenceElement &&
((PsiJavaCodeReferenceElement)reference).getParent() instanceof PsiImportStaticStatement) {
return JavaLookupElementBuilder.forMethod((PsiMethod)completion, PsiSubstitutor.EMPTY);
}
LookupElement _ret = LookupItemUtil.objectToLookupItem(completion);
if (_ret == null || !(_ret instanceof LookupItem)) return null;