diff --git a/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java b/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java index a7155576bdc0..737aedcb3cfd 100644 --- a/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java @@ -503,6 +503,9 @@ public class EnhancedSwitchMigrationInspection extends AbstractBaseJavaLocalInsp @Override public String generate(CommentTracker ct) { + if (myResultStatements.length == 1) { + return ct.text(myResultStatements[0]); + } return StreamEx.of(myResultStatements).map(stmt -> ct.text(stmt)).joining("\n", "{\n", "}"); } } diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements.java b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements.java index d36dc21a623e..2394f5beeb54 100644 --- a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements.java +++ b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements.java @@ -5,12 +5,8 @@ class SwitchExpressionMigration { private static String m(int n) { switch (n) { /*1*/ - case 1 -> { - System.out.println("a"/*2*/); /*3*/ - } - case 2 -> { - System.out.println("b"); - } + case 1 -> System.out.println("a"/*2*/); /*3*/ + case 2 -> System.out.println("b"); } } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements2.java b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements2.java index 6bd8d8a090e6..84b4f00d33f3 100644 --- a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements2.java +++ b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements2.java @@ -4,12 +4,8 @@ import java.util.*; class SwitchExpressionMigration { private static String m(int n) { switch (n) { - case 1 -> { - return "a"; - } - case 2 -> { - return "b"; - } + case 1 -> return "a"; + case 2 -> return "b"; } } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements3.java b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements3.java new file mode 100644 index 000000000000..83ea4180b7ea --- /dev/null +++ b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatements3.java @@ -0,0 +1,19 @@ +// "Replace with enhanced 'switch' statement" "true" +import java.util.*; + +class SwitchExpressionMigration { + private static int m(int x) { + switch (x) { + case 1 -> { + if (true) return 0; + else return 1; + } + case 2 -> return 2; + case 3, 4 -> { + System.out.println("asda"); + return 3; + } + default -> return 12; + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatementsFallthrough.java b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatementsFallthrough.java index 183110e7bb0d..aff984b7b9ea 100644 --- a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatementsFallthrough.java +++ b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchStatementsFallthrough.java @@ -4,15 +4,9 @@ import java.util.*; class SwitchExpressionMigration { private static String m(int n) { switch (n) { - case 3, 1 -> { - System.out.println("a"); - } - case 5, 6, 7 -> { - System.out.println("a"); - } - case 2, 4 -> { - System.out.println("b"); - } + case 3, 1 -> System.out.println("a"); + case 5, 6, 7 -> System.out.println("a"); + case 2, 4 -> System.out.println("b"); } } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchStatements3.java b/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchStatements3.java new file mode 100644 index 000000000000..dbc744b1ff55 --- /dev/null +++ b/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchStatements3.java @@ -0,0 +1,21 @@ +// "Replace with enhanced 'switch' statement" "true" +import java.util.*; + +class SwitchExpressionMigration { + private static int m(int x) { + switch (x) { + case 1: { + if (true) return 0; + else return 1; + } + case 2: + return 2; + case 3, 4: { + System.out.println("asda"); + return 3; + } + default: + return 12; + } + } +} \ No newline at end of file