diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ParenthesesUtils.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ParenthesesUtils.java index bd6e6601adaa..47193e778894 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ParenthesesUtils.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ParenthesesUtils.java @@ -18,6 +18,7 @@ package com.siyeh.ig.psiutils; import com.intellij.psi.*; import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.psi.util.TypeConversionUtil; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -27,8 +28,6 @@ import java.util.Map; public class ParenthesesUtils { - private static final Map tokenMap = new HashMap<>(); - private ParenthesesUtils() {} public static final int PARENTHESIZED_PRECEDENCE = 0; @@ -54,20 +53,6 @@ public class ParenthesesUtils { private static final Map s_binaryOperatorPrecedence = new HashMap<>(NUM_PRECEDENCES); - static { - tokenMap.put(JavaTokenType.PLUSEQ, JavaTokenType.PLUS); - tokenMap.put(JavaTokenType.MINUSEQ, JavaTokenType.MINUS); - tokenMap.put(JavaTokenType.ASTERISKEQ, JavaTokenType.ASTERISK); - tokenMap.put(JavaTokenType.DIVEQ, JavaTokenType.DIV); - tokenMap.put(JavaTokenType.ANDEQ, JavaTokenType.AND); - tokenMap.put(JavaTokenType.OREQ, JavaTokenType.OR); - tokenMap.put(JavaTokenType.XOREQ, JavaTokenType.XOR); - tokenMap.put(JavaTokenType.PERCEQ, JavaTokenType.PERC); - tokenMap.put(JavaTokenType.LTLTEQ, JavaTokenType.LTLT); - tokenMap.put(JavaTokenType.GTGTEQ, JavaTokenType.GTGT); - tokenMap.put(JavaTokenType.GTGTGTEQ, JavaTokenType.GTGTGT); - } - static { s_binaryOperatorPrecedence.put(JavaTokenType.PLUS, ADDITIVE_PRECEDENCE); s_binaryOperatorPrecedence.put(JavaTokenType.MINUS, ADDITIVE_PRECEDENCE); @@ -555,12 +540,12 @@ public class ParenthesesUtils { return parentPrecedence < childPrecedence; } - public static boolean areParenthesesNeeded(PsiJavaToken sign, PsiExpression rhs) { + public static boolean areParenthesesNeeded(PsiJavaToken compoundAssignmentToken, PsiExpression rhs) { if (rhs instanceof PsiPolyadicExpression) { final PsiPolyadicExpression binaryExpression = (PsiPolyadicExpression)rhs; final int precedence1 = getPrecedenceForOperator(binaryExpression.getOperationTokenType()); - final IElementType signTokenType = sign.getTokenType(); - final IElementType newOperatorToken = tokenMap.get(signTokenType); + final IElementType signTokenType = compoundAssignmentToken.getTokenType(); + final IElementType newOperatorToken = TypeConversionUtil.convertEQtoOperation(signTokenType); final int precedence2 = getPrecedenceForOperator(newOperatorToken); return precedence1 >= precedence2 || !isCommutativeOperator(newOperatorToken); }