From 48927fa8047ca1ffe57598a989e44c15484ecea2 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Thu, 24 May 2018 10:52:43 +0700 Subject: [PATCH] Clarification comment about relational precedence Review ID: IDEA-CR-32780 --- .../SimplifiableConditionalExpressionInspection.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/SimplifiableConditionalExpressionInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/SimplifiableConditionalExpressionInspection.java index 858a888c1ac3..db6161cb7159 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/SimplifiableConditionalExpressionInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/controlflow/SimplifiableConditionalExpressionInspection.java @@ -89,12 +89,15 @@ public class SimplifiableConditionalExpressionInspection extends BaseInspection assert thenExpression != null; assert elseExpression != null; if (BoolUtils.areExpressionsOpposite(thenExpression, elseExpression)) { + // EQUALITY_PRECEDENCE is technically enough here, but it may produces quite confusing code like "a == b > c" + // so we add (formally redundant) parentheses in this case: "a == (b > c)" + final int precedence = PsiPrecedenceUtil.RELATIONAL_PRECEDENCE; if (BoolUtils.isNegation(thenExpression)) { - return ParenthesesUtils.getText(tracker.markUnchanged(condition), PsiPrecedenceUtil.RELATIONAL_PRECEDENCE) + " != " + - ParenthesesUtils.getText(tracker.markUnchanged(elseExpression), PsiPrecedenceUtil.RELATIONAL_PRECEDENCE); + return ParenthesesUtils.getText(tracker.markUnchanged(condition), precedence) + " != " + + ParenthesesUtils.getText(tracker.markUnchanged(elseExpression), precedence); } else { - return ParenthesesUtils.getText(tracker.markUnchanged(condition), PsiPrecedenceUtil.RELATIONAL_PRECEDENCE) + " == " + - ParenthesesUtils.getText(tracker.markUnchanged(thenExpression), PsiPrecedenceUtil.RELATIONAL_PRECEDENCE); + return ParenthesesUtils.getText(tracker.markUnchanged(condition), precedence) + " == " + + ParenthesesUtils.getText(tracker.markUnchanged(thenExpression), precedence); } } if (BoolUtils.isTrue(thenExpression)) {