rustc_ast::mut_visit

Trait MutVisitor

source
pub trait MutVisitor: Sized {
    const VISIT_TOKENS: bool = false;
Show 59 methods // Provided methods fn visit_crate(&mut self, c: &mut Crate) { ... } fn visit_meta_list_item(&mut self, list_item: &mut MetaItemInner) { ... } fn visit_meta_item(&mut self, meta_item: &mut MetaItem) { ... } fn visit_use_tree(&mut self, use_tree: &mut UseTree) { ... } fn flat_map_foreign_item( &mut self, ni: P<ForeignItem>, ) -> SmallVec<[P<ForeignItem>; 1]> { ... } fn flat_map_item(&mut self, i: P<Item>) -> SmallVec<[P<Item>; 1]> { ... } fn visit_fn_header(&mut self, header: &mut FnHeader) { ... } fn flat_map_field_def(&mut self, fd: FieldDef) -> SmallVec<[FieldDef; 1]> { ... } fn flat_map_assoc_item( &mut self, i: P<AssocItem>, _ctxt: AssocCtxt, ) -> SmallVec<[P<AssocItem>; 1]> { ... } fn visit_fn_decl(&mut self, d: &mut P<FnDecl>) { ... } fn visit_fn(&mut self, fk: FnKind<'_>, _: Span, _: NodeId) { ... } fn visit_coroutine_kind(&mut self, a: &mut CoroutineKind) { ... } fn visit_closure_binder(&mut self, b: &mut ClosureBinder) { ... } fn visit_block(&mut self, b: &mut P<Block>) { ... } fn flat_map_stmt(&mut self, s: Stmt) -> SmallVec<[Stmt; 1]> { ... } fn flat_map_arm(&mut self, arm: Arm) -> SmallVec<[Arm; 1]> { ... } fn visit_pat(&mut self, p: &mut P<Pat>) { ... } fn visit_anon_const(&mut self, c: &mut AnonConst) { ... } fn visit_expr(&mut self, e: &mut P<Expr>) { ... } fn visit_method_receiver_expr(&mut self, ex: &mut P<Expr>) { ... } fn filter_map_expr(&mut self, e: P<Expr>) -> Option<P<Expr>> { ... } fn visit_generic_arg(&mut self, arg: &mut GenericArg) { ... } fn visit_ty(&mut self, t: &mut P<Ty>) { ... } fn visit_lifetime(&mut self, l: &mut Lifetime) { ... } fn visit_assoc_item_constraint(&mut self, c: &mut AssocItemConstraint) { ... } fn visit_foreign_mod(&mut self, nm: &mut ForeignMod) { ... } fn flat_map_variant(&mut self, v: Variant) -> SmallVec<[Variant; 1]> { ... } fn visit_ident(&mut self, i: &mut Ident) { ... } fn visit_path(&mut self, p: &mut Path) { ... } fn visit_path_segment(&mut self, p: &mut PathSegment) { ... } fn visit_qself(&mut self, qs: &mut Option<P<QSelf>>) { ... } fn visit_generic_args(&mut self, p: &mut GenericArgs) { ... } fn visit_angle_bracketed_parameter_data( &mut self, p: &mut AngleBracketedArgs, ) { ... } fn visit_parenthesized_parameter_data(&mut self, p: &mut ParenthesizedArgs) { ... } fn visit_local(&mut self, l: &mut P<Local>) { ... } fn visit_mac_call(&mut self, mac: &mut MacCall) { ... } fn visit_macro_def(&mut self, def: &mut MacroDef) { ... } fn visit_label(&mut self, label: &mut Label) { ... } fn visit_attribute(&mut self, at: &mut Attribute) { ... } fn flat_map_param(&mut self, param: Param) -> SmallVec<[Param; 1]> { ... } fn visit_generics(&mut self, generics: &mut Generics) { ... } fn visit_trait_ref(&mut self, tr: &mut TraitRef) { ... } fn visit_poly_trait_ref(&mut self, p: &mut PolyTraitRef) { ... } fn visit_variant_data(&mut self, vdata: &mut VariantData) { ... } fn flat_map_generic_param( &mut self, param: GenericParam, ) -> SmallVec<[GenericParam; 1]> { ... } fn visit_param_bound(&mut self, tpb: &mut GenericBound, _ctxt: BoundKind) { ... } fn visit_precise_capturing_arg(&mut self, arg: &mut PreciseCapturingArg) { ... } fn visit_mt(&mut self, mt: &mut MutTy) { ... } fn flat_map_expr_field(&mut self, f: ExprField) -> SmallVec<[ExprField; 1]> { ... } fn visit_where_clause(&mut self, where_clause: &mut WhereClause) { ... } fn visit_where_predicate(&mut self, where_predicate: &mut WherePredicate) { ... } fn visit_vis(&mut self, vis: &mut Visibility) { ... } fn visit_id(&mut self, _id: &mut NodeId) { ... } fn visit_span(&mut self, _sp: &mut Span) { ... } fn flat_map_pat_field(&mut self, fp: PatField) -> SmallVec<[PatField; 1]> { ... } fn visit_inline_asm(&mut self, asm: &mut InlineAsm) { ... } fn visit_inline_asm_sym(&mut self, sym: &mut InlineAsmSym) { ... } fn visit_format_args(&mut self, fmt: &mut FormatArgs) { ... } fn visit_capture_by(&mut self, capture_by: &mut CaptureBy) { ... }
}

Provided Associated Constants§

source

const VISIT_TOKENS: bool = false

Mutable token visiting only exists for the macro_rules token marker and should not be used otherwise. Token visitor would be entirely separate from the regular visitor if the marker didn’t have to visit AST fragments in nonterminal tokens.

Provided Methods§

source

fn visit_crate(&mut self, c: &mut Crate)

source

fn visit_meta_list_item(&mut self, list_item: &mut MetaItemInner)

source

fn visit_meta_item(&mut self, meta_item: &mut MetaItem)

source

fn visit_use_tree(&mut self, use_tree: &mut UseTree)

source

fn flat_map_foreign_item( &mut self, ni: P<ForeignItem>, ) -> SmallVec<[P<ForeignItem>; 1]>

source

fn flat_map_item(&mut self, i: P<Item>) -> SmallVec<[P<Item>; 1]>

source

fn visit_fn_header(&mut self, header: &mut FnHeader)

source

fn flat_map_field_def(&mut self, fd: FieldDef) -> SmallVec<[FieldDef; 1]>

source

fn flat_map_assoc_item( &mut self, i: P<AssocItem>, _ctxt: AssocCtxt, ) -> SmallVec<[P<AssocItem>; 1]>

source

fn visit_fn_decl(&mut self, d: &mut P<FnDecl>)

source

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

Span and NodeId are mutated at the caller site.

source

fn visit_coroutine_kind(&mut self, a: &mut CoroutineKind)

source

fn visit_closure_binder(&mut self, b: &mut ClosureBinder)

source

fn visit_block(&mut self, b: &mut P<Block>)

source

fn flat_map_stmt(&mut self, s: Stmt) -> SmallVec<[Stmt; 1]>

source

fn flat_map_arm(&mut self, arm: Arm) -> SmallVec<[Arm; 1]>

source

fn visit_pat(&mut self, p: &mut P<Pat>)

source

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

source

fn visit_expr(&mut self, e: &mut P<Expr>)

source

fn visit_method_receiver_expr(&mut self, ex: &mut P<Expr>)

This method is a hack to workaround unstable of stmt_expr_attributes. It can be removed once that feature is stabilized.

source

fn filter_map_expr(&mut self, e: P<Expr>) -> Option<P<Expr>>

source

fn visit_generic_arg(&mut self, arg: &mut GenericArg)

source

fn visit_ty(&mut self, t: &mut P<Ty>)

source

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

source

fn visit_assoc_item_constraint(&mut self, c: &mut AssocItemConstraint)

source

fn visit_foreign_mod(&mut self, nm: &mut ForeignMod)

source

fn flat_map_variant(&mut self, v: Variant) -> SmallVec<[Variant; 1]>

source

fn visit_ident(&mut self, i: &mut Ident)

source

fn visit_path(&mut self, p: &mut Path)

source

fn visit_path_segment(&mut self, p: &mut PathSegment)

source

fn visit_qself(&mut self, qs: &mut Option<P<QSelf>>)

source

fn visit_generic_args(&mut self, p: &mut GenericArgs)

source

fn visit_angle_bracketed_parameter_data(&mut self, p: &mut AngleBracketedArgs)

source

fn visit_parenthesized_parameter_data(&mut self, p: &mut ParenthesizedArgs)

source

fn visit_local(&mut self, l: &mut P<Local>)

source

fn visit_mac_call(&mut self, mac: &mut MacCall)

source

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

source

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

source

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

source

fn flat_map_param(&mut self, param: Param) -> SmallVec<[Param; 1]>

source

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

source

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

source

fn visit_poly_trait_ref(&mut self, p: &mut PolyTraitRef)

source

fn visit_variant_data(&mut self, vdata: &mut VariantData)

source

fn flat_map_generic_param( &mut self, param: GenericParam, ) -> SmallVec<[GenericParam; 1]>

source

fn visit_param_bound(&mut self, tpb: &mut GenericBound, _ctxt: BoundKind)

source

fn visit_precise_capturing_arg(&mut self, arg: &mut PreciseCapturingArg)

source

fn visit_mt(&mut self, mt: &mut MutTy)

source

fn flat_map_expr_field(&mut self, f: ExprField) -> SmallVec<[ExprField; 1]>

source

fn visit_where_clause(&mut self, where_clause: &mut WhereClause)

source

fn visit_where_predicate(&mut self, where_predicate: &mut WherePredicate)

source

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

source

fn visit_id(&mut self, _id: &mut NodeId)

source

fn visit_span(&mut self, _sp: &mut Span)

source

fn flat_map_pat_field(&mut self, fp: PatField) -> SmallVec<[PatField; 1]>

source

fn visit_inline_asm(&mut self, asm: &mut InlineAsm)

source

fn visit_inline_asm_sym(&mut self, sym: &mut InlineAsmSym)

source

fn visit_format_args(&mut self, fmt: &mut FormatArgs)

source

fn visit_capture_by(&mut self, capture_by: &mut CaptureBy)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§