mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-94471 for inspection ('Remove unnecessary parentheses' is not suggested inside array access)
This commit is contained in:
@@ -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);
|
||||
|
||||
+5
-6
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user