diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java index b7067ba29343..39d32f99669e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaGenerateMemberCompletionContributor.java @@ -93,7 +93,9 @@ public class JavaGenerateMemberCompletionContributor { List prototypes = ContainerUtil.newSmartList(); try { Collections.addAll(prototypes, GetterSetterPrototypeProvider.generateGetterSetters(field, true, false)); - Collections.addAll(prototypes, GetterSetterPrototypeProvider.generateGetterSetters(field, false, false)); + if (!field.hasModifierProperty(PsiModifier.FINAL)) { + Collections.addAll(prototypes, GetterSetterPrototypeProvider.generateGetterSetters(field, false, false)); + } } catch (GenerateCodeException ignore) { } for (final PsiMethod prototype : prototypes) { diff --git a/java/java-tests/testData/codeInsight/completion/normal/NoSetterForFinalField.java b/java/java-tests/testData/codeInsight/completion/normal/NoSetterForFinalField.java new file mode 100644 index 000000000000..8b42940aa4fc --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/NoSetterForFinalField.java @@ -0,0 +1,5 @@ +public class A { + final int finalField; + + publ +} diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy index 6859eca05c7e..bbde0698bd88 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/NormalCompletionTest.groovy @@ -1550,6 +1550,12 @@ class XInternalError {} checkResult() } + void testNoSetterForFinalField() { + configure() + myFixture.assertPreferredCompletionItems 0, 'public', 'public int getFinalField' + assert !myFixture.lookupElements.find { it.lookupString == 'public void setFinalField' } + } + void testBraceOnNextLine() { codeStyleSettings.BRACE_STYLE = CommonCodeStyleSettings.NEXT_LINE doTest()