diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java index d5bb1ed359bd..2e9882f56f8d 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java @@ -516,8 +516,12 @@ public class JavaKeywordCompletion { addKeyword(new OverridableSpace(createKeyword(s), TailType.HUMBLE_SPACE_BEFORE_WORD)); } - addKeyword(new OverridableSpace(createKeyword(PsiKeyword.CLASS), TailType.HUMBLE_SPACE_BEFORE_WORD)); - if (PsiTreeUtil.getParentOfType(myPosition, PsiCodeBlock.class, true, PsiMember.class) == null) { + boolean inExpression = PsiTreeUtil.getParentOfType(myPosition, PsiExpression.class, true, PsiMember.class) != null; + boolean inCodeBlock = PsiTreeUtil.getParentOfType(myPosition, PsiCodeBlock.class, true, PsiMember.class) != null; + if (inCodeBlock || !inExpression) { + addKeyword(new OverridableSpace(createKeyword(PsiKeyword.CLASS), TailType.HUMBLE_SPACE_BEFORE_WORD)); + } + if (!inExpression) { addKeyword(new OverridableSpace(createKeyword(PsiKeyword.INTERFACE), TailType.HUMBLE_SPACE_BEFORE_WORD)); if (PsiUtil.isLanguageLevel5OrHigher(myPosition)) { addKeyword(new OverridableSpace(createKeyword(PsiKeyword.ENUM), TailType.INSERT_SPACE)); diff --git a/java/java-tests/testData/codeInsight/completion/keywords/noClassKeywordsInArrayInitializer.java b/java/java-tests/testData/codeInsight/completion/keywords/noClassKeywordsInArrayInitializer.java new file mode 100644 index 000000000000..ff09cf01aaee --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/keywords/noClassKeywordsInArrayInitializer.java @@ -0,0 +1,8 @@ +class MyTest { + + String[] a = new String[]{ + "a", + "b"}; + +} + diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java index cda69c211976..a9a8c5cde5a7 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/completion/KeywordCompletionTest.java @@ -125,6 +125,8 @@ public class KeywordCompletionTest extends LightCompletionTestCase { public void testPrimitivesInClassAnnotationAttribute() { doTest(3, "true", "int", "boolean"); } public void testPrimitivesInMethodReturningArray() { doTest(2, "true", "byte", "boolean"); } + public void testNoClassKeywordsInArrayInitializer() { doTest(0, "class", "interface", "enum"); } + public void testImportStatic() { doTest(1, "static"); } public void testAbstractInInterface() { doTest(1, "abstract"); } public void testCharInAnnotatedParameter() { doTest(1, "char"); }