diff --git a/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java b/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java index a71f435c3e03..fd43b007d5c3 100644 --- a/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java @@ -480,11 +480,12 @@ public class EnhancedSwitchMigrationInspection extends AbstractBaseJavaLocalInsp } if (assignedVariable == null || !hasAssignedBranch) return null; boolean isRightAfterDeclaration = isRightAfterDeclaration(anchor, assignedVariable); - if (!wasDefault || !isExhaustive) { + if (!wasDefault) { SwitchExpressionBranch defaultBranch = getVariableAssigningDefaultBranch(assignedVariable, isRightAfterDeclaration, statement); - if (defaultBranch == null) { - } else { + if (defaultBranch != null) { newBranches.add(defaultBranch); + } else if (!isExhaustive) { + return null; } } return new SwitchExistingVariableReplacer(assignedVariable, statement, expressionBeingSwitched, newBranches, isRightAfterDeclaration); diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchWithVariableInitializedNonExhaustive.java b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchWithVariableInitializedNonExhaustive.java index 139a196aac95..2f03f56e6665 100644 --- a/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchWithVariableInitializedNonExhaustive.java +++ b/java/java-tests/testData/inspection/switchExpressionMigration/afterSwitchWithVariableInitializedNonExhaustive.java @@ -2,7 +2,7 @@ import java.util.*; class SwitchExpressionMigration { - private static void m() { + private static void m(String s) { int result = switch (s) { case "a" -> 1; case "b" -> 2; diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchWithVariableInitializedNonExhaustive.java b/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchWithVariableInitializedNonExhaustive.java index c07dc395315a..4fb5fa9cd772 100644 --- a/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchWithVariableInitializedNonExhaustive.java +++ b/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchWithVariableInitializedNonExhaustive.java @@ -2,7 +2,7 @@ import java.util.*; class SwitchExpressionMigration { - private static void m() { + private static void m(String s) { int result = 0; switch(s) { case "a": result = 1; break; diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchWithVariableNonExhaustive.java b/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchWithVariableNonExhaustive.java index f47e229023dd..84a16156c6a6 100644 --- a/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchWithVariableNonExhaustive.java +++ b/java/java-tests/testData/inspection/switchExpressionMigration/beforeSwitchWithVariableNonExhaustive.java @@ -2,7 +2,7 @@ import java.util.*; class SwitchExpressionMigration { - private static void m() { + private static void m(String s) { int result; switch(s) { case "a": result = 1; break;