[][src]Trait syntax::visit::Visitor

pub trait Visitor<'ast>: Sized {
    fn visit_name(&mut self, _span: Span, _name: Name) { ... }
fn visit_ident(&mut self, ident: Ident) { ... }
fn visit_mod(
        &mut self,
        m: &'ast Mod,
        _s: Span,
        _attrs: &[Attribute],
        _n: NodeId
    ) { ... }
fn visit_foreign_item(&mut self, i: &'ast ForeignItem) { ... }
fn visit_global_asm(&mut self, ga: &'ast GlobalAsm) { ... }
fn visit_item(&mut self, i: &'ast Item) { ... }
fn visit_local(&mut self, l: &'ast Local) { ... }
fn visit_block(&mut self, b: &'ast Block) { ... }
fn visit_stmt(&mut self, s: &'ast Stmt) { ... }
fn visit_arm(&mut self, a: &'ast Arm) { ... }
fn visit_pat(&mut self, p: &'ast Pat) { ... }
fn visit_anon_const(&mut self, c: &'ast AnonConst) { ... }
fn visit_expr(&mut self, ex: &'ast Expr) { ... }
fn visit_expr_post(&mut self, _ex: &'ast Expr) { ... }
fn visit_ty(&mut self, t: &'ast Ty) { ... }
fn visit_generic_param(&mut self, param: &'ast GenericParam) { ... }
fn visit_generics(&mut self, g: &'ast Generics) { ... }
fn visit_where_predicate(&mut self, p: &'ast WherePredicate) { ... }
fn visit_fn(
        &mut self,
        fk: FnKind<'ast>,
        fd: &'ast FnDecl,
        s: Span,
        _: NodeId
    ) { ... }
fn visit_trait_item(&mut self, ti: &'ast TraitItem) { ... }
fn visit_impl_item(&mut self, ii: &'ast ImplItem) { ... }
fn visit_trait_ref(&mut self, t: &'ast TraitRef) { ... }
fn visit_param_bound(&mut self, bounds: &'ast GenericBound) { ... }
fn visit_poly_trait_ref(
        &mut self,
        t: &'ast PolyTraitRef,
        m: &'ast TraitBoundModifier
    ) { ... }
fn visit_variant_data(
        &mut self,
        s: &'ast VariantData,
        _: Ident,
        _: &'ast Generics,
        _: NodeId,
        _: Span
    ) { ... }
fn visit_struct_field(&mut self, s: &'ast StructField) { ... }
fn visit_enum_def(
        &mut self,
        enum_definition: &'ast EnumDef,
        generics: &'ast Generics,
        item_id: NodeId,
        _: Span
    ) { ... }
fn visit_variant(
        &mut self,
        v: &'ast Variant,
        g: &'ast Generics,
        item_id: NodeId
    ) { ... }
fn visit_label(&mut self, label: &'ast Label) { ... }
fn visit_lifetime(&mut self, lifetime: &'ast Lifetime) { ... }
fn visit_mac(&mut self, _mac: &'ast Mac) { ... }
fn visit_mac_def(&mut self, _mac: &'ast MacroDef, _id: NodeId) { ... }
fn visit_path(&mut self, path: &'ast Path, _id: NodeId) { ... }
fn visit_use_tree(
        &mut self,
        use_tree: &'ast UseTree,
        id: NodeId,
        _nested: bool
    ) { ... }
fn visit_path_segment(
        &mut self,
        path_span: Span,
        path_segment: &'ast PathSegment
    ) { ... }
fn visit_generic_args(
        &mut self,
        path_span: Span,
        generic_args: &'ast GenericArgs
    ) { ... }
fn visit_generic_arg(&mut self, generic_arg: &'ast GenericArg) { ... }
fn visit_assoc_ty_constraint(&mut self, constraint: &'ast AssocTyConstraint) { ... }
fn visit_attribute(&mut self, attr: &'ast Attribute) { ... }
fn visit_tt(&mut self, tt: TokenTree) { ... }
fn visit_tts(&mut self, tts: TokenStream) { ... }
fn visit_token(&mut self, _t: Token) { ... }
fn visit_vis(&mut self, vis: &'ast Visibility) { ... }
fn visit_fn_ret_ty(&mut self, ret_ty: &'ast FunctionRetTy) { ... }
fn visit_fn_header(&mut self, _header: &'ast FnHeader) { ... } }
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_ident(&mut self, ident: Ident)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_mod(
    &mut self,
    m: &'ast Mod,
    _s: Span,
    _attrs: &[Attribute],
    _n: NodeId
)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_global_asm(&mut self, ga: &'ast GlobalAsm)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_anon_const(&mut self, c: &'ast AnonConst)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_generic_param(&mut self, param: &'ast GenericParam)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_where_predicate(&mut self, p: &'ast WherePredicate)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_fn(&mut self, fk: FnKind<'ast>, fd: &'ast FnDecl, s: Span, _: NodeId)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_param_bound(&mut self, bounds: &'ast GenericBound)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_label(&mut self, label: &'ast Label)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_mac_def(&mut self, _mac: &'ast MacroDef, _id: NodeId)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_use_tree(&mut self, use_tree: &'ast UseTree, id: NodeId, _nested: bool)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_generic_args(
    &mut self,
    path_span: Span,
    generic_args: &'ast GenericArgs
)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_generic_arg(&mut self, generic_arg: &'ast GenericArg)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_assoc_ty_constraint(&mut self, constraint: &'ast AssocTyConstraint)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_attribute(&mut self, attr: &'ast Attribute)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_tt(&mut self, tt: TokenTree)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_tts(&mut self, tts: TokenStream)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_token(&mut self, _t: Token)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_fn_ret_ty(&mut self, ret_ty: &'ast FunctionRetTy)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn visit_fn_header(&mut self, _header: &'ast FnHeader)

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Loading content...

Implementors

impl<'a> Visitor<'a> for PostExpansionVisitor<'a>[src]

impl<'a> Visitor<'a> for ShowSpanVisitor<'a>[src]

impl<'ast> Visitor<'ast> for NodeCounter[src]

Loading content...