From fc82e319c38e1b355486e9be87091365840ed7d8 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 30 Sep 2019 11:19:02 +0200 Subject: [PATCH] IDEA-221379 Unexpected "instanceof" keyword completion in annotation GitOrigin-RevId: 8058445f8b789fecf63058a05b5db1aa0ce39eb1 --- .../intellij/codeInsight/completion/JavaKeywordCompletion.java | 3 ++- .../completion/keywords/noInstanceofInAnnotation.java | 3 +++ .../java/codeInsight/completion/KeywordCompletionTest.java | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/keywords/noInstanceofInAnnotation.java 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 474ca56973e7..449dc96cc9d0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java @@ -611,7 +611,8 @@ public class JavaKeywordCompletion { if (prev == null) return false; PsiElement expr = PsiTreeUtil.getParentOfType(prev, PsiExpression.class); - if (expr != null && expr.getTextRange().getEndOffset() == prev.getTextRange().getEndOffset()) { + if (expr != null && expr.getTextRange().getEndOffset() == prev.getTextRange().getEndOffset() && + PsiTreeUtil.getParentOfType(expr, PsiAnnotation.class) == null) { return true; } diff --git a/java/java-tests/testData/codeInsight/completion/keywords/noInstanceofInAnnotation.java b/java/java-tests/testData/codeInsight/completion/keywords/noInstanceofInAnnotation.java new file mode 100644 index 000000000000..b47a1c9bfa23 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/keywords/noInstanceofInAnnotation.java @@ -0,0 +1,3 @@ +class Foo { + @Language("RegExp" x) String pattern; +} 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 7fd78c540c49..7e590eb1cbae 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 @@ -116,6 +116,7 @@ public class KeywordCompletionTest extends LightCompletionTestCase { public void testSpaceAfterInstanceof() { doTest(); } public void testInstanceofAfterUnresolved() { doTest(1, "instanceof"); } public void testInstanceofAfterStatementStart() { doTest(1, "instanceof"); } + public void testNoInstanceofInAnnotation() { doTest(0, "instanceof"); } public void testInstanceofNegation() { configureByTestName();