[switch completion] IDEA-277375 Can't complete default label in switch case

Add the `default` keyword to the completions after `case`.

GitOrigin-RevId: 8e1e05d230a43a11a47d9b55ab89548530ab68b2
This commit is contained in:
Nikita Eshkeev
2021-09-13 16:13:30 +03:00
committed by intellij-monorepo-bot
parent 2a4585c9ce
commit f35bee468f
6 changed files with 88 additions and 0 deletions

View File

@@ -304,6 +304,7 @@ public class JavaKeywordCompletion {
if (selectorType instanceof PsiPrimitiveType) return;
addKeyword(createKeyword(PsiKeyword.NULL));
addKeyword(createKeyword(PsiKeyword.DEFAULT));
}
private boolean isInsideCaseLabel() {

View File

@@ -0,0 +1,21 @@
class Main {
int f(Object o) {
return switch(o) {
case Integer i, def<caret>
}
}
int g(Object o) {
return switch(o) {
case def<caret>, Integer i
}
}
int h(Object o) {
return switch(o) {
case def<caret>
}
}
}

View File

@@ -0,0 +1,21 @@
class Main {
int f(Object o) {
return switch(o) {
case Integer i, default
}
}
int g(Object o) {
return switch(o) {
case default, Integer i
}
}
int h(Object o) {
return switch(o) {
case default
}
}
}

View File

@@ -0,0 +1,21 @@
class Main {
void f(Object o) {
switch(o) {
case Integer i, def<caret>
}
}
void g(Object o) {
switch(o) {
case def<caret>, Integer i
}
}
void h(Object o) {
switch(o) {
case def<caret>
}
}
}

View File

@@ -0,0 +1,21 @@
class Main {
void f(Object o) {
switch(o) {
case Integer i, default
}
}
void g(Object o) {
switch(o) {
case default, Integer i
}
}
void h(Object o) {
switch(o) {
case default
}
}
}

View File

@@ -35,6 +35,9 @@ class NormalSwitchCompletionTest extends NormalCompletionTestCase {
void testCompleteNullInSwitchStmt() { doTest() }
void testCompleteNullInSwitchExpr() { doTest() }
void testCompleteDefaultInSwitchStmt() { doTest() }
void testCompleteDefaultInSwitchExpr() { doTest() }
void testCompletePatternVariableSwitchStmt() { doTest() }
void testCompletePatternVariableSwitchExpr() { doTest() }