diff --git a/org.eclipse.jdt.core.manipulation/common/org/eclipse/jdt/internal/ui/fix/SimplifyBooleanIfElseCleanUpCore.java b/org.eclipse.jdt.core.manipulation/common/org/eclipse/jdt/internal/ui/fix/SimplifyBooleanIfElseCleanUpCore.java index 98967da17bf..4499fec5e35 100644 --- a/org.eclipse.jdt.core.manipulation/common/org/eclipse/jdt/internal/ui/fix/SimplifyBooleanIfElseCleanUpCore.java +++ b/org.eclipse.jdt.core.manipulation/common/org/eclipse/jdt/internal/ui/fix/SimplifyBooleanIfElseCleanUpCore.java @@ -108,6 +108,8 @@ public static SimplifyStatus verifyBooleanIfElse(final IfStatement ifStatement) if (thenStatement instanceof ReturnStatement returnStatement) { if (returnStatement.getExpression() instanceof BooleanLiteral literal) { thenValue= literal.booleanValue(); + } else { + return SimplifyStatus.INVALID; } } else if (thenStatement instanceof Block block && block.statements().size() == 1 && block.statements().get(0) instanceof ReturnStatement returnStatement) { diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTest.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTest.java index b24f79e57b2..112569f4919 100644 --- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTest.java +++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTest.java @@ -16879,6 +16879,7 @@ public void testDoNotSimplifyBooleanIfElseExpression01() throws Exception { package test1; public class E { + String text; public boolean doNotSimplifyIfBooleanSame(int x) { if (x > 0 && x < 7) { return true; @@ -16911,6 +16912,13 @@ public int doNotSimplifyNoneBoolean(String x) { return 2; } } + + public boolean doNotSimplifyInfixExpression(Integer x) { + if (text != null) + return text.length() > 43; + else + return false; + } } """;