diff --git a/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java b/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java index 29389202ca5a..ef1a6f955590 100644 --- a/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/EnhancedSwitchMigrationInspection.java @@ -582,7 +582,8 @@ public class EnhancedSwitchMigrationInspection extends AbstractBaseJavaLocalInsp OldSwitchStatementBranch branch = branches.get(i); if (!isConvertibleBranch(branch, i != size - 1)) return null; PsiStatement[] statements = branch.getStatements(); - if (branch.isFallthrough() || statements.length == 0) continue; + if (branch.isFallthrough() && statements.length == 0) continue; + if (statements.length == 0) return null; if (statements.length > maxNumberStatementsForExpression) { isInfo = true; } diff --git a/java/java-tests/testData/inspection/switchExpressionMigration/beforeEmptyStatement.java b/java/java-tests/testData/inspection/switchExpressionMigration/beforeEmptyStatement.java new file mode 100644 index 000000000000..266f824fe678 --- /dev/null +++ b/java/java-tests/testData/inspection/switchExpressionMigration/beforeEmptyStatement.java @@ -0,0 +1,13 @@ +// "Replace with 'switch' expression" "false" + +public class EnhancedSwitchIntentionBug { + public static void main(String[] args) { + int x; + switch (args[0]) { + case "1": + case "2": + case "3": + default: + } + } +}