IDEA-115445 (Unreasonable simplification of code)

This commit is contained in:
Bas Leijdekkers
2013-10-26 21:57:25 +02:00
parent deba1c4d14
commit 2a377576df
4 changed files with 16 additions and 16 deletions
@@ -191,9 +191,6 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
private void buildSimplifiedExpression(List<PsiExpression> expressions, String token, boolean negate, StringBuilder out) {
if (expressions.size() == 1) {
final PsiExpression expression = expressions.get(0);
if (isBoxedTypeComparison(token, expression)) {
out.append(expression.getText()).append(" != null && ");
}
if (!negate) {
out.append(expression.getText());
return;
@@ -243,10 +240,6 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
}
}
private static boolean isBoxedTypeComparison(String token, PsiExpression expression) {
return ("==".equals(token) || "!=".equals(token)) && expression instanceof PsiReferenceExpression && expression.getType() instanceof PsiClassType;
}
private void buildSimplifiedPrefixExpression(PsiPrefixExpression expression, StringBuilder out) {
final PsiJavaToken sign = expression.getOperationSign();
final IElementType tokenType = sign.getTokenType();
@@ -398,7 +391,7 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
}
}
final Boolean value = (Boolean)ConstantExpressionUtil.computeCastTo(expression, PsiType.BOOLEAN);
return value != null ? value.booleanValue() : null;
return value != null ? value : null;
}
private static boolean containsReference(@Nullable PsiExpression expression) {
@@ -0,0 +1,6 @@
class Boxed {
void f(Boolean b) {
if (!b) {}
}
}
@@ -0,0 +1,6 @@
class Boxed {
void f(Boolean b) {
if (<caret>b == (false)) {}
}
}
@@ -29,12 +29,7 @@ public class PointlessBooleanExpressionFixTest extends IGQuickFixesTestCase {
myDefaultHint = InspectionGadgetsBundle.message("pointless.bitwise.expression.simplify.quickfix");
}
public void testNegation() {
doTest();
}
public void testPolyadic() {
doTest();
}
public void testNegation() { doTest(); }
public void testPolyadic() { doTest(); }
public void testBoxed() { doTest(); }
}