public static void removeParentheses( @NotNull PsiExpression expression, boolean ignoreClarifyingParentheses) { if (expression instanceof PsiMethodCallExpression) { final PsiMethodCallExpression methodCall = (PsiMethodCallExpression) expression; removeParensFromMethodCallExpression(methodCall, ignoreClarifyingParentheses); } if (expression instanceof PsiReferenceExpression) { final PsiReferenceExpression referenceExpression = (PsiReferenceExpression) expression; removeParensFromReferenceExpression(referenceExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiNewExpression) { final PsiNewExpression newExpression = (PsiNewExpression) expression; removeParensFromNewExpression(newExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiAssignmentExpression) { final PsiAssignmentExpression assignmentExpression = (PsiAssignmentExpression) expression; removeParensFromAssignmentExpression(assignmentExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiArrayInitializerExpression) { final PsiArrayInitializerExpression arrayInitializerExpression = (PsiArrayInitializerExpression) expression; removeParensFromArrayInitializerExpression( arrayInitializerExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiTypeCastExpression) { final PsiTypeCastExpression typeCastExpression = (PsiTypeCastExpression) expression; removeParensFromTypeCastExpression(typeCastExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiArrayAccessExpression) { final PsiArrayAccessExpression arrayAccessExpression = (PsiArrayAccessExpression) expression; removeParensFromArrayAccessExpression(arrayAccessExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiPrefixExpression) { final PsiPrefixExpression prefixExpression = (PsiPrefixExpression) expression; removeParensFromPrefixExpression(prefixExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiPostfixExpression) { final PsiPostfixExpression postfixExpression = (PsiPostfixExpression) expression; removeParensFromPostfixExpression(postfixExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiPolyadicExpression) { final PsiPolyadicExpression polyadicExpression = (PsiPolyadicExpression) expression; removeParensFromPolyadicExpression(polyadicExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiInstanceOfExpression) { final PsiInstanceOfExpression instanceofExpression = (PsiInstanceOfExpression) expression; removeParensFromInstanceOfExpression(instanceofExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiConditionalExpression) { final PsiConditionalExpression conditionalExpression = (PsiConditionalExpression) expression; removeParensFromConditionalExpression(conditionalExpression, ignoreClarifyingParentheses); } if (expression instanceof PsiParenthesizedExpression) { final PsiParenthesizedExpression parenthesizedExpression = (PsiParenthesizedExpression) expression; removeParensFromParenthesizedExpression(parenthesizedExpression, ignoreClarifyingParentheses); } }