diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ParenthesesUtils.java b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ParenthesesUtils.java index 96fe931a21bd..d47d4032892b 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ParenthesesUtils.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/psiutils/ParenthesesUtils.java @@ -252,11 +252,20 @@ public class ParenthesesUtils { return; } final PsiElement parent = parenthesizedExpression.getParent(); - if (!(parent instanceof PsiExpression) || parent instanceof PsiParenthesizedExpression) { + if (!(parent instanceof PsiExpression) || parent instanceof PsiParenthesizedExpression || + parent instanceof PsiArrayInitializerExpression) { final PsiExpression newExpression = (PsiExpression)parenthesizedExpression.replace(body); removeParentheses(newExpression, ignoreClarifyingParentheses); return; } + else if (parent instanceof PsiArrayAccessExpression) { + // use addAfter() + delete() instead of replace() to + // workaround automatic insertion of parentheses by psi + final PsiExpression newExpression = (PsiExpression)parent.addAfter(body, parenthesizedExpression); + parenthesizedExpression.delete(); + removeParentheses(newExpression, ignoreClarifyingParentheses); + return; + } final PsiExpression parentExpression = (PsiExpression)parent; final int parentPrecedence = getPrecedence(parentExpression); final int childPrecedence = getPrecedence(body); diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java index 9d413ff2e46b..88f78160511b 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryParenthesesInspection.java @@ -112,7 +112,8 @@ public class UnnecessaryParenthesesInspection extends BaseInspection { if (child == null) { return; } - if (!(parent instanceof PsiExpression) || parent instanceof PsiParenthesizedExpression) { + if (!(parent instanceof PsiExpression) || parent instanceof PsiParenthesizedExpression + || parent instanceof PsiArrayAccessExpression || parent instanceof PsiArrayInitializerExpression) { registerError(expression); return; } @@ -121,11 +122,9 @@ public class UnnecessaryParenthesesInspection extends BaseInspection { if (parentPrecedence > childPrecedence) { if (ignoreClarifyingParentheses) { if (child instanceof PsiPolyadicExpression) { - if (parent instanceof PsiPolyadicExpression) { - return; - } else if (parent instanceof PsiConditionalExpression) { - return; - } else if (parent instanceof PsiInstanceOfExpression) { + if (parent instanceof PsiPolyadicExpression || + parent instanceof PsiConditionalExpression || + parent instanceof PsiInstanceOfExpression) { return; } }