don't suggest void methods in a context where some return value is expected (suggest on second invocation)

This commit is contained in:
peter
2011-04-06 19:21:15 +02:00
parent 1cf769a6dd
commit 8080667544
7 changed files with 38 additions and 8 deletions
@@ -247,6 +247,8 @@ public class JavaCompletionContributor extends CompletionContributor {
if (reference instanceof PsiJavaReference) {
final ElementFilter filter = getReferenceFilter(position);
if (filter != null) {
boolean filterVoid = JavaSmartCompletionContributor.getExpectedTypes(parameters).length > 0 && parameters.getInvocationCount() < 2;
final boolean isSwitchLabel = SWITCH_LABEL.accepts(position);
final PsiFile originalFile = parameters.getOriginalFile();
for (LookupElement element : JavaCompletionUtil.processJavaReference(position,
@@ -268,6 +270,11 @@ public class JavaCompletionContributor extends CompletionContributor {
item.setTailType(TailType.NONE);
}
Object object = element.getObject();
if (filterVoid && object instanceof PsiMethod && PsiType.VOID.equals(((PsiMethod)object).getReturnType())) {
continue;
}
result.addElement(element);
}
}