don't generate setters for constants during completion (IDEA-CR-21764)

This commit is contained in:
peter
2017-06-09 18:16:19 +02:00
parent 741a681c52
commit 2e6cfa9223
3 changed files with 7 additions and 1 deletions
@@ -88,7 +88,7 @@ public class JavaGenerateMemberCompletionContributor {
private static void addGetterSetterElements(CompletionResultSet result, PsiClass parent, Set<MethodSignature> addedSignatures) {
int count = 0;
for (PsiField field : parent.getFields()) {
if (field instanceof PsiEnumConstant) continue;
if (isConstant(field)) continue;
List<PsiMethod> prototypes = ContainerUtil.newSmartList();
try {
@@ -116,6 +116,10 @@ public class JavaGenerateMemberCompletionContributor {
}
}
private static boolean isConstant(PsiField field) {
return field.hasModifierProperty(PsiModifier.FINAL) && field.hasModifierProperty(PsiModifier.PUBLIC) && field.hasModifierProperty(PsiModifier.STATIC);
}
private static void removeLookupString(InsertionContext context) {
context.getDocument().deleteString(context.getStartOffset(), context.getTailOffset());
context.commitDocument();
@@ -1,5 +1,6 @@
public class A {
final int finalField;
public static final int CONSTANT = 239;
publ<caret>
}
@@ -1554,6 +1554,7 @@ class XInternalError {}
configure()
myFixture.assertPreferredCompletionItems 0, 'public', 'public int getFinalField'
assert !myFixture.lookupElements.find { it.lookupString == 'public void setFinalField' }
assert !myFixture.lookupElements.find { it.lookupString == 'public int getCONSTANT' }
}
void testBraceOnNextLine() {