Module syntex_syntax::visit [] [src]

AST walker. Each overridden visit method has full control over what happens with its node, it can do its own traversal of the node's children, call visit::walk_* to apply the default traversal algorithm, or prevent deeper traversal by doing nothing.

Note: it is an important invariant that the default visitor walks the body of a function in "execution order" (more concretely, reverse post-order with respect to the CFG implied by the AST), meaning that if AST node A may execute before AST node B, then A is visited first. The borrow checker in particular relies on this property.

Note: walking an AST before macro expansion is probably a bad idea. For instance, a walker looking for item names in a module will miss all of those that are created by the expansion of a macro.

Enums

FnKind

Traits

Visitor

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.

Functions

walk_arm
walk_assoc_type_binding
walk_block
walk_crate
walk_enum_def
walk_expr
walk_fn
walk_fn_decl
walk_fn_kind
walk_fn_ret_ty
walk_foreign_item
walk_generics
walk_ident
walk_impl_item
walk_item
walk_lifetime
walk_lifetime_def
walk_local
walk_mac
walk_macro_def
walk_mod
walk_opt_ident
walk_opt_name
walk_opt_sp_ident
walk_pat
walk_path
walk_path_list_item
walk_path_parameters
walk_path_segment
walk_poly_trait_ref
walk_stmt
walk_struct_def
walk_struct_field
walk_trait_item
walk_trait_ref
walk_ty
walk_ty_param_bound
walk_variant
walk_vis