diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/CreateMissingSwitchBranchesFix.java b/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/CreateMissingSwitchBranchesFix.java index 2c54e16c078b..29b84ac2ac38 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/CreateMissingSwitchBranchesFix.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/fixes/CreateMissingSwitchBranchesFix.java @@ -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) { diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/enumswitch/afterExpressionBreakJava13Preview.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/enumswitch/afterExpressionBreakJava13Preview.java new file mode 100644 index 000000000000..55a417517f09 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/enumswitch/afterExpressionBreakJava13Preview.java @@ -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"; + }; + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/enumswitch/beforeExpressionBreakJava13Preview.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/enumswitch/beforeExpressionBreakJava13Preview.java new file mode 100644 index 000000000000..62c3c5bfa0e9 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/controlflow/enumswitch/beforeExpressionBreakJava13Preview.java @@ -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 switch (x) { + case A: yield "foo"; + default: yield "bar"; + }; + } +} \ No newline at end of file