Trait syntex_syntax::visit::Visitor [] [src]

pub trait Visitor: Sized {
    fn visit_name(&mut self, _span: Span, _name: Name) { ... }
    fn visit_ident(&mut self, span: Span, ident: Ident) { ... }
    fn visit_mod(&mut self, m: &Mod, _s: Span, _n: NodeId) { ... }
    fn visit_foreign_item(&mut self, i: &ForeignItem) { ... }
    fn visit_item(&mut self, i: &Item) { ... }
    fn visit_local(&mut self, l: &Local) { ... }
    fn visit_block(&mut self, b: &Block) { ... }
    fn visit_stmt(&mut self, s: &Stmt) { ... }
    fn visit_arm(&mut self, a: &Arm) { ... }
    fn visit_pat(&mut self, p: &Pat) { ... }
    fn visit_expr(&mut self, ex: &Expr) { ... }
    fn visit_expr_post(&mut self, _ex: &Expr) { ... }
    fn visit_ty(&mut self, t: &Ty) { ... }
    fn visit_generics(&mut self, g: &Generics) { ... }
    fn visit_fn(&mut self, fk: FnKind, fd: &FnDecl, b: &Block, s: Span, _: NodeId) { ... }
    fn visit_trait_item(&mut self, ti: &TraitItem) { ... }
    fn visit_impl_item(&mut self, ii: &ImplItem) { ... }
    fn visit_trait_ref(&mut self, t: &TraitRef) { ... }
    fn visit_ty_param_bound(&mut self, bounds: &TyParamBound) { ... }
    fn visit_poly_trait_ref(&mut self, t: &PolyTraitRef, m: &TraitBoundModifier) { ... }
    fn visit_variant_data(&mut self, s: &VariantData, _: Ident, _: &Generics, _: NodeId, _: Span) { ... }
    fn visit_struct_field(&mut self, s: &StructField) { ... }
    fn visit_enum_def(&mut self, enum_definition: &EnumDef, generics: &Generics, item_id: NodeId, _: Span) { ... }
    fn visit_variant(&mut self, v: &Variant, g: &Generics, item_id: NodeId) { ... }
    fn visit_lifetime(&mut self, lifetime: &Lifetime) { ... }
    fn visit_lifetime_def(&mut self, lifetime: &LifetimeDef) { ... }
    fn visit_mac(&mut self, _mac: &Mac) { ... }
    fn visit_path(&mut self, path: &Path, _id: NodeId) { ... }
    fn visit_path_list_item(&mut self, prefix: &Path, item: &PathListItem) { ... }
    fn visit_path_segment(&mut self, path_span: Span, path_segment: &PathSegment) { ... }
    fn visit_path_parameters(&mut self, path_span: Span, path_parameters: &PathParameters) { ... }
    fn visit_assoc_type_binding(&mut self, type_binding: &TypeBinding) { ... }
    fn visit_attribute(&mut self, _attr: &Attribute) { ... }
    fn visit_macro_def(&mut self, macro_def: &MacroDef) { ... }
    fn visit_vis(&mut self, vis: &Visibility) { ... }
}

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_name(&mut self, _span: Span, _name: Name)

fn visit_ident(&mut self, span: Span, ident: Ident)

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

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

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

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

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

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

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

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

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

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

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

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

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

fn visit_trait_item(&mut self, ti: &TraitItem)

fn visit_impl_item(&mut self, ii: &ImplItem)

fn visit_trait_ref(&mut self, t: &TraitRef)

fn visit_ty_param_bound(&mut self, bounds: &TyParamBound)

fn visit_poly_trait_ref(&mut self, t: &PolyTraitRef, m: &TraitBoundModifier)

fn visit_variant_data(&mut self, s: &VariantData, _: Ident, _: &Generics, _: NodeId, _: Span)

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

fn visit_enum_def(&mut self, enum_definition: &EnumDef, generics: &Generics, item_id: NodeId, _: Span)

fn visit_variant(&mut self, v: &Variant, g: &Generics, item_id: NodeId)

fn visit_lifetime(&mut self, lifetime: &Lifetime)

fn visit_lifetime_def(&mut self, lifetime: &LifetimeDef)

fn visit_mac(&mut self, _mac: &Mac)

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

fn visit_path_list_item(&mut self, prefix: &Path, item: &PathListItem)

fn visit_path_segment(&mut self, path_span: Span, path_segment: &PathSegment)

fn visit_path_parameters(&mut self, path_span: Span, path_parameters: &PathParameters)

fn visit_assoc_type_binding(&mut self, type_binding: &TypeBinding)

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

fn visit_macro_def(&mut self, macro_def: &MacroDef)

fn visit_vis(&mut self, vis: &Visibility)

Implementors