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);
   }
 }