diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java index faf84cdf482c..bd4597559c47 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionData.java @@ -503,8 +503,9 @@ public class JavaCompletionData extends JavaAwareCompletionData{ new ParentElementFilter(new ClassFilter(PsiSwitchLabelStatement.class)), new LeftNeighbour(new OrFilter( new ParentElementFilter(new ClassFilter(PsiSwitchStatement.class), 2), - new AndFilter(new TextFilter(";", "}", ":"),new ParentElementFilter(new ClassFilter(PsiSwitchStatement.class), 3) - )))))); + new AndFilter(new TextFilter(";", ":"),new ParentElementFilter(new ClassFilter(PsiSwitchStatement.class), 3)), + new AndFilter(new TextFilter("}"), new ParentElementFilter(new ClassFilter(PsiSwitchStatement.class), 4)) + ))))); variant.includeScopeClass(PsiElement.class, false); variant.addCompletion(PsiKeyword.CASE, TailType.SPACE); variant.addCompletion(PsiKeyword.DEFAULT, TailType.CASE_COLON); diff --git a/java/java-tests/testData/codeInsight/completion/normal/DefaultInSwitch.java b/java/java-tests/testData/codeInsight/completion/normal/DefaultInSwitch.java new file mode 100644 index 000000000000..8bfb38e08d3a --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/DefaultInSwitch.java @@ -0,0 +1,9 @@ +public class ConstConfig { + { + switch (a) { + case Foooo: {} + def + + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/completion/normal/DefaultInSwitch_after.java b/java/java-tests/testData/codeInsight/completion/normal/DefaultInSwitch_after.java new file mode 100644 index 000000000000..bbd0330ecd94 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/DefaultInSwitch_after.java @@ -0,0 +1,9 @@ +public class ConstConfig { + { + switch (a) { + case Foooo: {} + default: + + } + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index bce6bff004d8..488562c7249a 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -583,6 +583,7 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase { } public void testFieldNegation() throws Throwable { doTest('!');} + public void testDefaultInSwitch() throws Throwable { doTest()} public void testSuperInConstructor() throws Throwable { doTest();