mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-218232 Create missing branch in switch leads to exception, fix all does nothing
GitOrigin-RevId: 136c60845a6b70bca07d5643913f50aaa26e0010
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6ebd80cf9f
commit
97e799fdaa
+5
-1
@@ -6,8 +6,10 @@ import com.intellij.codeInsight.template.TemplateBuilderFactory;
|
||||
import com.intellij.codeInsight.template.impl.ConstantNode;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.util.Couple;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.siyeh.ig.psiutils.CommentTracker;
|
||||
@@ -153,7 +155,9 @@ public class CreateMissingSwitchBranchesFix extends BaseSwitchFix {
|
||||
if (isRuleBasedFormat) {
|
||||
return Collections.singletonList("case " + name + " -> " + value + ";");
|
||||
} else {
|
||||
return Arrays.asList("case "+name+":", "break " + value + ";");
|
||||
return Arrays.asList("case " + name + ":",
|
||||
(PsiUtil.getLanguageLevel(switchBlock) == LanguageLevel.JDK_13_PREVIEW ? "yield" : "break") +
|
||||
" " + value + ";");
|
||||
}
|
||||
} else {
|
||||
if (isRuleBasedFormat) {
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// "Create missing branches: 'B', and 'C'" "true"
|
||||
package com.siyeh.ipp.enumswitch;
|
||||
|
||||
class BeforeDefault {
|
||||
enum X {A, B, C}
|
||||
|
||||
String test(X x) {
|
||||
return switch (x) {
|
||||
case A: yield "foo";
|
||||
case B:
|
||||
yield null;
|
||||
case C:
|
||||
yield null;
|
||||
default: yield "bar";
|
||||
};
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// "Create missing branches: 'B', and 'C'" "true"
|
||||
package com.siyeh.ipp.enumswitch;
|
||||
|
||||
class BeforeDefault {
|
||||
enum X {A, B, C}
|
||||
|
||||
String test(X x) {
|
||||
return <caret>switch (x) {
|
||||
case A: yield "foo";
|
||||
default: yield "bar";
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user