use syntax::ast::*;
use syntax::mut_visit::{self, MutVisitor};
use syntax::ptr::P;
use crate::ast_manip::MutVisit;
struct RemoveParen;
impl MutVisitor for RemoveParen {
fn visit_expr(&mut self, e: &mut P<Expr>) {
if let ExprKind::Paren(ref inner) = e.kind {
*e = inner.clone();
}
mut_visit::noop_visit_expr(e, self);
}
fn visit_ty(&mut self, t: &mut P<Ty>) {
if let TyKind::Paren(ref inner) = t.kind {
*t = inner.clone();
}
mut_visit::noop_visit_ty(t, self)
}
fn visit_mac(&mut self, mac: &mut Mac) {
mut_visit::noop_visit_mac(mac, self)
}
}
#[cfg_attr(feature = "profile", flame)]
pub fn remove_paren<T: MutVisit>(x: &mut T) {
x.visit(&mut RemoveParen)
}