mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
completion: don't suggest true/false literals where boolean is not expected
This commit is contained in:
@@ -465,8 +465,10 @@ public class JavaCompletionData extends JavaAwareCompletionData {
|
||||
result.addElement(TailTypeDecorator.withTail(createKeyword(position, PsiKeyword.NEW), TailType.INSERT_SPACE));
|
||||
result.addElement(createKeyword(position, PsiKeyword.NULL));
|
||||
}
|
||||
result.addElement(createKeyword(position, PsiKeyword.TRUE));
|
||||
result.addElement(createKeyword(position, PsiKeyword.FALSE));
|
||||
if (mayExpectBoolean(parameters)) {
|
||||
result.addElement(createKeyword(position, PsiKeyword.TRUE));
|
||||
result.addElement(createKeyword(position, PsiKeyword.FALSE));
|
||||
}
|
||||
}
|
||||
|
||||
PsiFile file = position.getContainingFile();
|
||||
@@ -527,6 +529,14 @@ public class JavaCompletionData extends JavaAwareCompletionData {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean mayExpectBoolean(CompletionParameters parameters) {
|
||||
for (ExpectedTypeInfo info : JavaSmartCompletionContributor.getExpectedTypes(parameters)) {
|
||||
PsiType type = info.getType();
|
||||
if (type instanceof PsiClassType || type == PsiType.BOOLEAN) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static boolean isExpressionPosition(PsiElement position) {
|
||||
return EXPR_KEYWORDS.accepts(position) ||
|
||||
psiElement().insideStarting(psiElement(PsiClassObjectAccessExpression.class)).accepts(position);
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
public class Foo {
|
||||
|
||||
int foo(Object fact) {
|
||||
return 42 * fa<caret>x
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -629,6 +629,10 @@ interface TxANotAnno {}
|
||||
checkPreferredItems 0, 'value'
|
||||
}
|
||||
|
||||
public void testNoBooleansInMultiplication() {
|
||||
checkPreferredItems 0, 'fact'
|
||||
}
|
||||
|
||||
public void testGlobalStaticMemberStats() {
|
||||
configureNoCompletion(getTestName(false) + ".java")
|
||||
myFixture.complete(CompletionType.BASIC, 2)
|
||||
|
||||
Reference in New Issue
Block a user