Trait syntax::visit::Visitor[src]

pub trait Visitor<E: Clone> {
    fn visit_ident(&mut self, _sp: Span, _ident: Ident, _e: E) { ... }
    fn visit_mod(&mut self, m: &Mod, _s: Span, _n: NodeId, e: E) { ... }
    fn visit_view_item(&mut self, i: &ViewItem, e: E) { ... }
    fn visit_foreign_item(&mut self, i: &ForeignItem, e: E) { ... }
    fn visit_item(&mut self, i: &Item, e: E) { ... }
    fn visit_local(&mut self, l: &Local, e: E) { ... }
    fn visit_block(&mut self, b: &Block, e: E) { ... }
    fn visit_stmt(&mut self, s: &Stmt, e: E) { ... }
    fn visit_arm(&mut self, a: &Arm, e: E) { ... }
    fn visit_pat(&mut self, p: &Pat, e: E) { ... }
    fn visit_decl(&mut self, d: &Decl, e: E) { ... }
    fn visit_expr(&mut self, ex: &Expr, e: E) { ... }
    fn visit_expr_post(&mut self, _ex: &Expr, _e: E) { ... }
    fn visit_ty(&mut self, t: &Ty, e: E) { ... }
    fn visit_generics(&mut self, g: &Generics, e: E) { ... }
    fn visit_fn(&mut self, fk: &FnKind, fd: &FnDecl, b: &Block, s: Span, _: NodeId, e: E) { ... }
    fn visit_ty_method(&mut self, t: &TypeMethod, e: E) { ... }
    fn visit_trait_method(&mut self, t: &TraitMethod, e: E) { ... }
    fn visit_struct_def(&mut self, s: &StructDef, _: Ident, _: &Generics, _: NodeId, e: E) { ... }
    fn visit_struct_field(&mut self, s: &StructField, e: E) { ... }
    fn visit_variant(&mut self, v: &Variant, g: &Generics, e: E) { ... }
    fn visit_opt_lifetime_ref(&mut self, _span: Span, opt_lifetime: &Option<Lifetime>, env: E) { ... }
    fn visit_lifetime_ref(&mut self, _lifetime: &Lifetime, _e: E) { ... }
    fn visit_lifetime_decl(&mut self, _lifetime: &Lifetime, _e: E) { ... }
    fn visit_explicit_self(&mut self, es: &ExplicitSelf, e: E) { ... }
    fn visit_mac(&mut self, macro: &Mac, e: E) { ... }
    fn visit_path(&mut self, path: &Path, _id: NodeId, e: E) { ... }
    fn visit_attribute(&mut self, _attr: &Attribute, _e: E) { ... }
}

Each method of the Visitor trait is a hook to be potentially overridden. Each method's default implementation recursively visits the substructure of the input via the corresponding walk method; e.g. the visit_mod method by default calls visit::walk_mod.

If you want to ensure that your code handles every variant explicitly, you need to override each method. (And you also need to monitor future changes to Visitor in case a new method with a new default implementation gets introduced.)

Provided Methods

fn visit_ident(&mut self, _sp: Span, _ident: Ident, _e: E)

Visit the idents

fn visit_mod(&mut self, m: &Mod, _s: Span, _n: NodeId, e: E)

fn visit_view_item(&mut self, i: &ViewItem, e: E)

fn visit_foreign_item(&mut self, i: &ForeignItem, e: E)

fn visit_item(&mut self, i: &Item, e: E)

fn visit_local(&mut self, l: &Local, e: E)

fn visit_block(&mut self, b: &Block, e: E)

fn visit_stmt(&mut self, s: &Stmt, e: E)

fn visit_arm(&mut self, a: &Arm, e: E)

fn visit_pat(&mut self, p: &Pat, e: E)

fn visit_decl(&mut self, d: &Decl, e: E)

fn visit_expr(&mut self, ex: &Expr, e: E)

fn visit_expr_post(&mut self, _ex: &Expr, _e: E)

fn visit_ty(&mut self, t: &Ty, e: E)

fn visit_generics(&mut self, g: &Generics, e: E)

fn visit_fn(&mut self, fk: &FnKind, fd: &FnDecl, b: &Block, s: Span, _: NodeId, e: E)

fn visit_ty_method(&mut self, t: &TypeMethod, e: E)

fn visit_trait_method(&mut self, t: &TraitMethod, e: E)

fn visit_struct_def(&mut self, s: &StructDef, _: Ident, _: &Generics, _: NodeId, e: E)

fn visit_struct_field(&mut self, s: &StructField, e: E)

fn visit_variant(&mut self, v: &Variant, g: &Generics, e: E)

fn visit_opt_lifetime_ref(&mut self, _span: Span, opt_lifetime: &Option<Lifetime>, env: E)

Visits an optional reference to a lifetime. The span is the span of some surrounding reference should opt_lifetime be None.

fn visit_lifetime_ref(&mut self, _lifetime: &Lifetime, _e: E)

Visits a reference to a lifetime

fn visit_lifetime_decl(&mut self, _lifetime: &Lifetime, _e: E)

Visits a declaration of a lifetime

fn visit_explicit_self(&mut self, es: &ExplicitSelf, e: E)

fn visit_mac(&mut self, macro: &Mac, e: E)

fn visit_path(&mut self, path: &Path, _id: NodeId, e: E)

fn visit_attribute(&mut self, _attr: &Attribute, _e: E)

Implementors