Module syn::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.

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_assoc_type_binding
walk_const_expr
walk_derive_input
walk_field
walk_fn_ret_ty
walk_generics
walk_lifetime_def
walk_mac
walk_opt_ident
walk_path
walk_path_parameters
walk_path_segment
walk_poly_trait_ref
walk_ty
walk_ty_param_bound
walk_variant
walk_variant_data