Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  visit_mut.rs   Sprache: unbekannt

 
// This file is @generated by syn-internal-codegen.
// It is not intended for manual editing.

#![allow(unused_variables)]
#![allow(clippy::needless_pass_by_ref_mut)]
#[cfg(any(feature = "full", feature = "derive"))]
use crate::punctuated::Punctuated;
#[cfg(feature = "full")]
macro_rules! full {
    ($e:expr) => {
        $e
    };
}
#[cfg(all(feature = "derive", not(feature = "full")))]
macro_rules! full {
    ($e:expr) => {
        unreachable!()
    };
}
macro_rules! skip {
    ($($tt:tt)*) => {};
}
/// Syntax tree traversal to mutate an exclusive borrow of a syntax tree in
/// place.
///
/// See the [module documentation] for details.
///
/// [module documentation]: self
pub trait VisitMut {
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_abi_mut(&mut self, i: &mut crate::Abi) {
        visit_abi_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_angle_bracketed_generic_arguments_mut(
        &mut self,
        i: &mut crate::AngleBracketedGenericArguments,
    ) {
        visit_angle_bracketed_generic_arguments_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_arm_mut(&mut self, i: &mut crate::Arm) {
        visit_arm_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_assoc_const_mut(&mut self, i: &mut crate::AssocConst) {
        visit_assoc_const_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_assoc_type_mut(&mut self, i: &mut crate::AssocType) {
        visit_assoc_type_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_attr_style_mut(&mut self, i: &mut crate::AttrStyle) {
        visit_attr_style_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_attribute_mut(&mut self, i: &mut crate::Attribute) {
        visit_attribute_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_attributes_mut(&mut self, i: &mut Vec<crate::Attribute>) {
        for attr in i {
            self.visit_attribute_mut(attr);
        }
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_bare_fn_arg_mut(&mut self, i: &mut crate::BareFnArg) {
        visit_bare_fn_arg_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_bare_variadic_mut(&mut self, i: &mut crate::BareVariadic) {
        visit_bare_variadic_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_bin_op_mut(&mut self, i: &mut crate::BinOp) {
        visit_bin_op_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_block_mut(&mut self, i: &mut crate::Block) {
        visit_block_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_bound_lifetimes_mut(&mut self, i: &mut crate::BoundLifetimes) {
        visit_bound_lifetimes_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_captured_param_mut(&mut self, i: &mut crate::CapturedParam) {
        visit_captured_param_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_const_param_mut(&mut self, i: &mut crate::ConstParam) {
        visit_const_param_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_constraint_mut(&mut self, i: &mut crate::Constraint) {
        visit_constraint_mut(self, i);
    }
    #[cfg(feature = "derive")]
    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
    fn visit_data_mut(&mut self, i: &mut crate::Data) {
        visit_data_mut(self, i);
    }
    #[cfg(feature = "derive")]
    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
    fn visit_data_enum_mut(&mut self, i: &mut crate::DataEnum) {
        visit_data_enum_mut(self, i);
    }
    #[cfg(feature = "derive")]
    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
    fn visit_data_struct_mut(&mut self, i: &mut crate::DataStruct) {
        visit_data_struct_mut(self, i);
    }
    #[cfg(feature = "derive")]
    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
    fn visit_data_union_mut(&mut self, i: &mut crate::DataUnion) {
        visit_data_union_mut(self, i);
    }
    #[cfg(feature = "derive")]
    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
    fn visit_derive_input_mut(&mut self, i: &mut crate::DeriveInput) {
        visit_derive_input_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_mut(&mut self, i: &mut crate::Expr) {
        visit_expr_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_array_mut(&mut self, i: &mut crate::ExprArray) {
        visit_expr_array_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_assign_mut(&mut self, i: &mut crate::ExprAssign) {
        visit_expr_assign_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_async_mut(&mut self, i: &mut crate::ExprAsync) {
        visit_expr_async_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_await_mut(&mut self, i: &mut crate::ExprAwait) {
        visit_expr_await_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_binary_mut(&mut self, i: &mut crate::ExprBinary) {
        visit_expr_binary_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_block_mut(&mut self, i: &mut crate::ExprBlock) {
        visit_expr_block_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_break_mut(&mut self, i: &mut crate::ExprBreak) {
        visit_expr_break_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_call_mut(&mut self, i: &mut crate::ExprCall) {
        visit_expr_call_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_cast_mut(&mut self, i: &mut crate::ExprCast) {
        visit_expr_cast_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_closure_mut(&mut self, i: &mut crate::ExprClosure) {
        visit_expr_closure_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_const_mut(&mut self, i: &mut crate::ExprConst) {
        visit_expr_const_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_continue_mut(&mut self, i: &mut crate::ExprContinue) {
        visit_expr_continue_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_field_mut(&mut self, i: &mut crate::ExprField) {
        visit_expr_field_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_for_loop_mut(&mut self, i: &mut crate::ExprForLoop) {
        visit_expr_for_loop_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_group_mut(&mut self, i: &mut crate::ExprGroup) {
        visit_expr_group_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_if_mut(&mut self, i: &mut crate::ExprIf) {
        visit_expr_if_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_index_mut(&mut self, i: &mut crate::ExprIndex) {
        visit_expr_index_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_infer_mut(&mut self, i: &mut crate::ExprInfer) {
        visit_expr_infer_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_let_mut(&mut self, i: &mut crate::ExprLet) {
        visit_expr_let_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_lit_mut(&mut self, i: &mut crate::ExprLit) {
        visit_expr_lit_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_loop_mut(&mut self, i: &mut crate::ExprLoop) {
        visit_expr_loop_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_macro_mut(&mut self, i: &mut crate::ExprMacro) {
        visit_expr_macro_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_match_mut(&mut self, i: &mut crate::ExprMatch) {
        visit_expr_match_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_method_call_mut(&mut self, i: &mut crate::ExprMethodCall) {
        visit_expr_method_call_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_paren_mut(&mut self, i: &mut crate::ExprParen) {
        visit_expr_paren_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_path_mut(&mut self, i: &mut crate::ExprPath) {
        visit_expr_path_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_range_mut(&mut self, i: &mut crate::ExprRange) {
        visit_expr_range_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_raw_addr_mut(&mut self, i: &mut crate::ExprRawAddr) {
        visit_expr_raw_addr_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_reference_mut(&mut self, i: &mut crate::ExprReference) {
        visit_expr_reference_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_repeat_mut(&mut self, i: &mut crate::ExprRepeat) {
        visit_expr_repeat_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_return_mut(&mut self, i: &mut crate::ExprReturn) {
        visit_expr_return_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_struct_mut(&mut self, i: &mut crate::ExprStruct) {
        visit_expr_struct_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_try_mut(&mut self, i: &mut crate::ExprTry) {
        visit_expr_try_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_try_block_mut(&mut self, i: &mut crate::ExprTryBlock) {
        visit_expr_try_block_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_tuple_mut(&mut self, i: &mut crate::ExprTuple) {
        visit_expr_tuple_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_expr_unary_mut(&mut self, i: &mut crate::ExprUnary) {
        visit_expr_unary_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_unsafe_mut(&mut self, i: &mut crate::ExprUnsafe) {
        visit_expr_unsafe_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_while_mut(&mut self, i: &mut crate::ExprWhile) {
        visit_expr_while_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_expr_yield_mut(&mut self, i: &mut crate::ExprYield) {
        visit_expr_yield_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_field_mut(&mut self, i: &mut crate::Field) {
        visit_field_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_field_mutability_mut(&mut self, i: &mut crate::FieldMutability) {
        visit_field_mutability_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_field_pat_mut(&mut self, i: &mut crate::FieldPat) {
        visit_field_pat_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_field_value_mut(&mut self, i: &mut crate::FieldValue) {
        visit_field_value_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_fields_mut(&mut self, i: &mut crate::Fields) {
        visit_fields_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_fields_named_mut(&mut self, i: &mut crate::FieldsNamed) {
        visit_fields_named_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_fields_unnamed_mut(&mut self, i: &mut crate::FieldsUnnamed) {
        visit_fields_unnamed_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_file_mut(&mut self, i: &mut crate::File) {
        visit_file_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_fn_arg_mut(&mut self, i: &mut crate::FnArg) {
        visit_fn_arg_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_foreign_item_mut(&mut self, i: &mut crate::ForeignItem) {
        visit_foreign_item_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_foreign_item_fn_mut(&mut self, i: &mut crate::ForeignItemFn) {
        visit_foreign_item_fn_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_foreign_item_macro_mut(&mut self, i: &mut crate::ForeignItemMacro) {
        visit_foreign_item_macro_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_foreign_item_static_mut(&mut self, i: &mut crate::ForeignItemStatic) {
        visit_foreign_item_static_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_foreign_item_type_mut(&mut self, i: &mut crate::ForeignItemType) {
        visit_foreign_item_type_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_generic_argument_mut(&mut self, i: &mut crate::GenericArgument) {
        visit_generic_argument_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_generic_param_mut(&mut self, i: &mut crate::GenericParam) {
        visit_generic_param_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_generics_mut(&mut self, i: &mut crate::Generics) {
        visit_generics_mut(self, i);
    }
    fn visit_ident_mut(&mut self, i: &mut proc_macro2::Ident) {
        visit_ident_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_impl_item_mut(&mut self, i: &mut crate::ImplItem) {
        visit_impl_item_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_impl_item_const_mut(&mut self, i: &mut crate::ImplItemConst) {
        visit_impl_item_const_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_impl_item_fn_mut(&mut self, i: &mut crate::ImplItemFn) {
        visit_impl_item_fn_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_impl_item_macro_mut(&mut self, i: &mut crate::ImplItemMacro) {
        visit_impl_item_macro_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_impl_item_type_mut(&mut self, i: &mut crate::ImplItemType) {
        visit_impl_item_type_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_impl_restriction_mut(&mut self, i: &mut crate::ImplRestriction) {
        visit_impl_restriction_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_index_mut(&mut self, i: &mut crate::Index) {
        visit_index_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_mut(&mut self, i: &mut crate::Item) {
        visit_item_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_const_mut(&mut self, i: &mut crate::ItemConst) {
        visit_item_const_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_enum_mut(&mut self, i: &mut crate::ItemEnum) {
        visit_item_enum_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_extern_crate_mut(&mut self, i: &mut crate::ItemExternCrate) {
        visit_item_extern_crate_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_fn_mut(&mut self, i: &mut crate::ItemFn) {
        visit_item_fn_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_foreign_mod_mut(&mut self, i: &mut crate::ItemForeignMod) {
        visit_item_foreign_mod_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_impl_mut(&mut self, i: &mut crate::ItemImpl) {
        visit_item_impl_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_macro_mut(&mut self, i: &mut crate::ItemMacro) {
        visit_item_macro_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_mod_mut(&mut self, i: &mut crate::ItemMod) {
        visit_item_mod_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_static_mut(&mut self, i: &mut crate::ItemStatic) {
        visit_item_static_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_struct_mut(&mut self, i: &mut crate::ItemStruct) {
        visit_item_struct_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_trait_mut(&mut self, i: &mut crate::ItemTrait) {
        visit_item_trait_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_trait_alias_mut(&mut self, i: &mut crate::ItemTraitAlias) {
        visit_item_trait_alias_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_type_mut(&mut self, i: &mut crate::ItemType) {
        visit_item_type_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_union_mut(&mut self, i: &mut crate::ItemUnion) {
        visit_item_union_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_item_use_mut(&mut self, i: &mut crate::ItemUse) {
        visit_item_use_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_label_mut(&mut self, i: &mut crate::Label) {
        visit_label_mut(self, i);
    }
    fn visit_lifetime_mut(&mut self, i: &mut crate::Lifetime) {
        visit_lifetime_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_lifetime_param_mut(&mut self, i: &mut crate::LifetimeParam) {
        visit_lifetime_param_mut(self, i);
    }
    fn visit_lit_mut(&mut self, i: &mut crate::Lit) {
        visit_lit_mut(self, i);
    }
    fn visit_lit_bool_mut(&mut self, i: &mut crate::LitBool) {
        visit_lit_bool_mut(self, i);
    }
    fn visit_lit_byte_mut(&mut self, i: &mut crate::LitByte) {
        visit_lit_byte_mut(self, i);
    }
    fn visit_lit_byte_str_mut(&mut self, i: &mut crate::LitByteStr) {
        visit_lit_byte_str_mut(self, i);
    }
    fn visit_lit_cstr_mut(&mut self, i: &mut crate::LitCStr) {
        visit_lit_cstr_mut(self, i);
    }
    fn visit_lit_char_mut(&mut self, i: &mut crate::LitChar) {
        visit_lit_char_mut(self, i);
    }
    fn visit_lit_float_mut(&mut self, i: &mut crate::LitFloat) {
        visit_lit_float_mut(self, i);
    }
    fn visit_lit_int_mut(&mut self, i: &mut crate::LitInt) {
        visit_lit_int_mut(self, i);
    }
    fn visit_lit_str_mut(&mut self, i: &mut crate::LitStr) {
        visit_lit_str_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_local_mut(&mut self, i: &mut crate::Local) {
        visit_local_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_local_init_mut(&mut self, i: &mut crate::LocalInit) {
        visit_local_init_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_macro_mut(&mut self, i: &mut crate::Macro) {
        visit_macro_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_macro_delimiter_mut(&mut self, i: &mut crate::MacroDelimiter) {
        visit_macro_delimiter_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_member_mut(&mut self, i: &mut crate::Member) {
        visit_member_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_meta_mut(&mut self, i: &mut crate::Meta) {
        visit_meta_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_meta_list_mut(&mut self, i: &mut crate::MetaList) {
        visit_meta_list_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_meta_name_value_mut(&mut self, i: &mut crate::MetaNameValue) {
        visit_meta_name_value_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_parenthesized_generic_arguments_mut(
        &mut self,
        i: &mut crate::ParenthesizedGenericArguments,
    ) {
        visit_parenthesized_generic_arguments_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_mut(&mut self, i: &mut crate::Pat) {
        visit_pat_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_ident_mut(&mut self, i: &mut crate::PatIdent) {
        visit_pat_ident_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_or_mut(&mut self, i: &mut crate::PatOr) {
        visit_pat_or_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_paren_mut(&mut self, i: &mut crate::PatParen) {
        visit_pat_paren_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_reference_mut(&mut self, i: &mut crate::PatReference) {
        visit_pat_reference_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_rest_mut(&mut self, i: &mut crate::PatRest) {
        visit_pat_rest_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_slice_mut(&mut self, i: &mut crate::PatSlice) {
        visit_pat_slice_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_struct_mut(&mut self, i: &mut crate::PatStruct) {
        visit_pat_struct_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_tuple_mut(&mut self, i: &mut crate::PatTuple) {
        visit_pat_tuple_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_tuple_struct_mut(&mut self, i: &mut crate::PatTupleStruct) {
        visit_pat_tuple_struct_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_type_mut(&mut self, i: &mut crate::PatType) {
        visit_pat_type_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pat_wild_mut(&mut self, i: &mut crate::PatWild) {
        visit_pat_wild_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_path_mut(&mut self, i: &mut crate::Path) {
        visit_path_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_path_arguments_mut(&mut self, i: &mut crate::PathArguments) {
        visit_path_arguments_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_path_segment_mut(&mut self, i: &mut crate::PathSegment) {
        visit_path_segment_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_pointer_mutability_mut(&mut self, i: &mut crate::PointerMutability) {
        visit_pointer_mutability_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_precise_capture_mut(&mut self, i: &mut crate::PreciseCapture) {
        visit_precise_capture_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_predicate_lifetime_mut(&mut self, i: &mut crate::PredicateLifetime) {
        visit_predicate_lifetime_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_predicate_type_mut(&mut self, i: &mut crate::PredicateType) {
        visit_predicate_type_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_qself_mut(&mut self, i: &mut crate::QSelf) {
        visit_qself_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_range_limits_mut(&mut self, i: &mut crate::RangeLimits) {
        visit_range_limits_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_receiver_mut(&mut self, i: &mut crate::Receiver) {
        visit_receiver_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_return_type_mut(&mut self, i: &mut crate::ReturnType) {
        visit_return_type_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_signature_mut(&mut self, i: &mut crate::Signature) {
        visit_signature_mut(self, i);
    }
    fn visit_span_mut(&mut self, i: &mut proc_macro2::Span) {
        visit_span_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_static_mutability_mut(&mut self, i: &mut crate::StaticMutability) {
        visit_static_mutability_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_stmt_mut(&mut self, i: &mut crate::Stmt) {
        visit_stmt_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_stmt_macro_mut(&mut self, i: &mut crate::StmtMacro) {
        visit_stmt_macro_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_trait_bound_mut(&mut self, i: &mut crate::TraitBound) {
        visit_trait_bound_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_trait_bound_modifier_mut(&mut self, i: &mut crate::TraitBoundModifier) {
        visit_trait_bound_modifier_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_trait_item_mut(&mut self, i: &mut crate::TraitItem) {
        visit_trait_item_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_trait_item_const_mut(&mut self, i: &mut crate::TraitItemConst) {
        visit_trait_item_const_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_trait_item_fn_mut(&mut self, i: &mut crate::TraitItemFn) {
        visit_trait_item_fn_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_trait_item_macro_mut(&mut self, i: &mut crate::TraitItemMacro) {
        visit_trait_item_macro_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_trait_item_type_mut(&mut self, i: &mut crate::TraitItemType) {
        visit_trait_item_type_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_mut(&mut self, i: &mut crate::Type) {
        visit_type_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_array_mut(&mut self, i: &mut crate::TypeArray) {
        visit_type_array_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_bare_fn_mut(&mut self, i: &mut crate::TypeBareFn) {
        visit_type_bare_fn_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_group_mut(&mut self, i: &mut crate::TypeGroup) {
        visit_type_group_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_impl_trait_mut(&mut self, i: &mut crate::TypeImplTrait) {
        visit_type_impl_trait_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_infer_mut(&mut self, i: &mut crate::TypeInfer) {
        visit_type_infer_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_macro_mut(&mut self, i: &mut crate::TypeMacro) {
        visit_type_macro_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_never_mut(&mut self, i: &mut crate::TypeNever) {
        visit_type_never_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_param_mut(&mut self, i: &mut crate::TypeParam) {
        visit_type_param_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_param_bound_mut(&mut self, i: &mut crate::TypeParamBound) {
        visit_type_param_bound_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_paren_mut(&mut self, i: &mut crate::TypeParen) {
        visit_type_paren_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_path_mut(&mut self, i: &mut crate::TypePath) {
        visit_type_path_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_ptr_mut(&mut self, i: &mut crate::TypePtr) {
        visit_type_ptr_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_reference_mut(&mut self, i: &mut crate::TypeReference) {
        visit_type_reference_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_slice_mut(&mut self, i: &mut crate::TypeSlice) {
        visit_type_slice_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_trait_object_mut(&mut self, i: &mut crate::TypeTraitObject) {
        visit_type_trait_object_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_type_tuple_mut(&mut self, i: &mut crate::TypeTuple) {
        visit_type_tuple_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_un_op_mut(&mut self, i: &mut crate::UnOp) {
        visit_un_op_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_use_glob_mut(&mut self, i: &mut crate::UseGlob) {
        visit_use_glob_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_use_group_mut(&mut self, i: &mut crate::UseGroup) {
        visit_use_group_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_use_name_mut(&mut self, i: &mut crate::UseName) {
        visit_use_name_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_use_path_mut(&mut self, i: &mut crate::UsePath) {
        visit_use_path_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_use_rename_mut(&mut self, i: &mut crate::UseRename) {
        visit_use_rename_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_use_tree_mut(&mut self, i: &mut crate::UseTree) {
        visit_use_tree_mut(self, i);
    }
    #[cfg(feature = "full")]
    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
    fn visit_variadic_mut(&mut self, i: &mut crate::Variadic) {
        visit_variadic_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_variant_mut(&mut self, i: &mut crate::Variant) {
        visit_variant_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_vis_restricted_mut(&mut self, i: &mut crate::VisRestricted) {
        visit_vis_restricted_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_visibility_mut(&mut self, i: &mut crate::Visibility) {
        visit_visibility_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_where_clause_mut(&mut self, i: &mut crate::WhereClause) {
        visit_where_clause_mut(self, i);
    }
    #[cfg(any(feature = "derive", feature = "full"))]
    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
    fn visit_where_predicate_mut(&mut self, i: &mut crate::WherePredicate) {
        visit_where_predicate_mut(self, i);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_abi_mut<V>(v: &mut V, node: &mut crate::Abi)
where
    V: VisitMut + ?Sized,
{
    skip!(node.extern_token);
    if let Some(it) = &mut node.name {
        v.visit_lit_str_mut(it);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_angle_bracketed_generic_arguments_mut<V>(
    v: &mut V,
    node: &mut crate::AngleBracketedGenericArguments,
)
where
    V: VisitMut + ?Sized,
{
    skip!(node.colon2_token);
    skip!(node.lt_token);
    for mut el in Punctuated::pairs_mut(&mut node.args) {
        let it = el.value_mut();
        v.visit_generic_argument_mut(it);
    }
    skip!(node.gt_token);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_arm_mut<V>(v: &mut V, node: &mut crate::Arm)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_pat_mut(&mut node.pat);
    if let Some(it) = &mut node.guard {
        skip!((it).0);
        v.visit_expr_mut(&mut *(it).1);
    }
    skip!(node.fat_arrow_token);
    v.visit_expr_mut(&mut *node.body);
    skip!(node.comma);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_assoc_const_mut<V>(v: &mut V, node: &mut crate::AssocConst)
where
    V: VisitMut + ?Sized,
{
    v.visit_ident_mut(&mut node.ident);
    if let Some(it) = &mut node.generics {
        v.visit_angle_bracketed_generic_arguments_mut(it);
    }
    skip!(node.eq_token);
    v.visit_expr_mut(&mut node.value);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_assoc_type_mut<V>(v: &mut V, node: &mut crate::AssocType)
where
    V: VisitMut + ?Sized,
{
    v.visit_ident_mut(&mut node.ident);
    if let Some(it) = &mut node.generics {
        v.visit_angle_bracketed_generic_arguments_mut(it);
    }
    skip!(node.eq_token);
    v.visit_type_mut(&mut node.ty);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_attr_style_mut<V>(v: &mut V, node: &mut crate::AttrStyle)
where
    V: VisitMut + ?Sized,
{
    match node {
        crate::AttrStyle::Outer => {}
        crate::AttrStyle::Inner(_binding_0) => {
            skip!(_binding_0);
        }
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_attribute_mut<V>(v: &mut V, node: &mut crate::Attribute)
where
    V: VisitMut + ?Sized,
{
    skip!(node.pound_token);
    v.visit_attr_style_mut(&mut node.style);
    skip!(node.bracket_token);
    v.visit_meta_mut(&mut node.meta);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_bare_fn_arg_mut<V>(v: &mut V, node: &mut crate::BareFnArg)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    if let Some(it) = &mut node.name {
        v.visit_ident_mut(&mut (it).0);
        skip!((it).1);
    }
    v.visit_type_mut(&mut node.ty);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_bare_variadic_mut<V>(v: &mut V, node: &mut crate::BareVariadic)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    if let Some(it) = &mut node.name {
        v.visit_ident_mut(&mut (it).0);
        skip!((it).1);
    }
    skip!(node.dots);
    skip!(node.comma);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_bin_op_mut<V>(v: &mut V, node: &mut crate::BinOp)
where
    V: VisitMut + ?Sized,
{
    match node {
        crate::BinOp::Add(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Sub(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Mul(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Div(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Rem(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::And(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Or(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::BitXor(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::BitAnd(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::BitOr(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Shl(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Shr(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Eq(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Lt(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Le(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Ne(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Ge(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::Gt(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::AddAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::SubAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::MulAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::DivAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::RemAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::BitXorAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::BitAndAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::BitOrAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::ShlAssign(_binding_0) => {
            skip!(_binding_0);
        }
        crate::BinOp::ShrAssign(_binding_0) => {
            skip!(_binding_0);
        }
    }
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_block_mut<V>(v: &mut V, node: &mut crate::Block)
where
    V: VisitMut + ?Sized,
{
    skip!(node.brace_token);
    for it in &mut node.stmts {
        v.visit_stmt_mut(it);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_bound_lifetimes_mut<V>(v: &mut V, node: &mut crate::BoundLifetimes)
where
    V: VisitMut + ?Sized,
{
    skip!(node.for_token);
    skip!(node.lt_token);
    for mut el in Punctuated::pairs_mut(&mut node.lifetimes) {
        let it = el.value_mut();
        v.visit_generic_param_mut(it);
    }
    skip!(node.gt_token);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_captured_param_mut<V>(v: &mut V, node: &mut crate::CapturedParam)
where
    V: VisitMut + ?Sized,
{
    match node {
        crate::CapturedParam::Lifetime(_binding_0) => {
            v.visit_lifetime_mut(_binding_0);
        }
        crate::CapturedParam::Ident(_binding_0) => {
            v.visit_ident_mut(_binding_0);
        }
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_const_param_mut<V>(v: &mut V, node: &mut crate::ConstParam)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.const_token);
    v.visit_ident_mut(&mut node.ident);
    skip!(node.colon_token);
    v.visit_type_mut(&mut node.ty);
    skip!(node.eq_token);
    if let Some(it) = &mut node.default {
        v.visit_expr_mut(it);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_constraint_mut<V>(v: &mut V, node: &mut crate::Constraint)
where
    V: VisitMut + ?Sized,
{
    v.visit_ident_mut(&mut node.ident);
    if let Some(it) = &mut node.generics {
        v.visit_angle_bracketed_generic_arguments_mut(it);
    }
    skip!(node.colon_token);
    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
        let it = el.value_mut();
        v.visit_type_param_bound_mut(it);
    }
}
#[cfg(feature = "derive")]
#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
pub fn visit_data_mut<V>(v: &mut V, node: &mut crate::Data)
where
    V: VisitMut + ?Sized,
{
    match node {
        crate::Data::Struct(_binding_0) => {
            v.visit_data_struct_mut(_binding_0);
        }
        crate::Data::Enum(_binding_0) => {
            v.visit_data_enum_mut(_binding_0);
        }
        crate::Data::Union(_binding_0) => {
            v.visit_data_union_mut(_binding_0);
        }
    }
}
#[cfg(feature = "derive")]
#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
pub fn visit_data_enum_mut<V>(v: &mut V, node: &mut crate::DataEnum)
where
    V: VisitMut + ?Sized,
{
    skip!(node.enum_token);
    skip!(node.brace_token);
    for mut el in Punctuated::pairs_mut(&mut node.variants) {
        let it = el.value_mut();
        v.visit_variant_mut(it);
    }
}
#[cfg(feature = "derive")]
#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
pub fn visit_data_struct_mut<V>(v: &mut V, node: &mut crate::DataStruct)
where
    V: VisitMut + ?Sized,
{
    skip!(node.struct_token);
    v.visit_fields_mut(&mut node.fields);
    skip!(node.semi_token);
}
#[cfg(feature = "derive")]
#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
pub fn visit_data_union_mut<V>(v: &mut V, node: &mut crate::DataUnion)
where
    V: VisitMut + ?Sized,
{
    skip!(node.union_token);
    v.visit_fields_named_mut(&mut node.fields);
}
#[cfg(feature = "derive")]
#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
pub fn visit_derive_input_mut<V>(v: &mut V, node: &mut crate::DeriveInput)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_visibility_mut(&mut node.vis);
    v.visit_ident_mut(&mut node.ident);
    v.visit_generics_mut(&mut node.generics);
    v.visit_data_mut(&mut node.data);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_mut<V>(v: &mut V, node: &mut crate::Expr)
where
    V: VisitMut + ?Sized,
{
    match node {
        crate::Expr::Array(_binding_0) => {
            full!(v.visit_expr_array_mut(_binding_0));
        }
        crate::Expr::Assign(_binding_0) => {
            full!(v.visit_expr_assign_mut(_binding_0));
        }
        crate::Expr::Async(_binding_0) => {
            full!(v.visit_expr_async_mut(_binding_0));
        }
        crate::Expr::Await(_binding_0) => {
            full!(v.visit_expr_await_mut(_binding_0));
        }
        crate::Expr::Binary(_binding_0) => {
            v.visit_expr_binary_mut(_binding_0);
        }
        crate::Expr::Block(_binding_0) => {
            full!(v.visit_expr_block_mut(_binding_0));
        }
        crate::Expr::Break(_binding_0) => {
            full!(v.visit_expr_break_mut(_binding_0));
        }
        crate::Expr::Call(_binding_0) => {
            v.visit_expr_call_mut(_binding_0);
        }
        crate::Expr::Cast(_binding_0) => {
            v.visit_expr_cast_mut(_binding_0);
        }
        crate::Expr::Closure(_binding_0) => {
            full!(v.visit_expr_closure_mut(_binding_0));
        }
        crate::Expr::Const(_binding_0) => {
            full!(v.visit_expr_const_mut(_binding_0));
        }
        crate::Expr::Continue(_binding_0) => {
            full!(v.visit_expr_continue_mut(_binding_0));
        }
        crate::Expr::Field(_binding_0) => {
            v.visit_expr_field_mut(_binding_0);
        }
        crate::Expr::ForLoop(_binding_0) => {
            full!(v.visit_expr_for_loop_mut(_binding_0));
        }
        crate::Expr::Group(_binding_0) => {
            v.visit_expr_group_mut(_binding_0);
        }
        crate::Expr::If(_binding_0) => {
            full!(v.visit_expr_if_mut(_binding_0));
        }
        crate::Expr::Index(_binding_0) => {
            v.visit_expr_index_mut(_binding_0);
        }
        crate::Expr::Infer(_binding_0) => {
            full!(v.visit_expr_infer_mut(_binding_0));
        }
        crate::Expr::Let(_binding_0) => {
            full!(v.visit_expr_let_mut(_binding_0));
        }
        crate::Expr::Lit(_binding_0) => {
            v.visit_expr_lit_mut(_binding_0);
        }
        crate::Expr::Loop(_binding_0) => {
            full!(v.visit_expr_loop_mut(_binding_0));
        }
        crate::Expr::Macro(_binding_0) => {
            v.visit_expr_macro_mut(_binding_0);
        }
        crate::Expr::Match(_binding_0) => {
            full!(v.visit_expr_match_mut(_binding_0));
        }
        crate::Expr::MethodCall(_binding_0) => {
            v.visit_expr_method_call_mut(_binding_0);
        }
        crate::Expr::Paren(_binding_0) => {
            v.visit_expr_paren_mut(_binding_0);
        }
        crate::Expr::Path(_binding_0) => {
            v.visit_expr_path_mut(_binding_0);
        }
        crate::Expr::Range(_binding_0) => {
            full!(v.visit_expr_range_mut(_binding_0));
        }
        crate::Expr::RawAddr(_binding_0) => {
            full!(v.visit_expr_raw_addr_mut(_binding_0));
        }
        crate::Expr::Reference(_binding_0) => {
            v.visit_expr_reference_mut(_binding_0);
        }
        crate::Expr::Repeat(_binding_0) => {
            full!(v.visit_expr_repeat_mut(_binding_0));
        }
        crate::Expr::Return(_binding_0) => {
            full!(v.visit_expr_return_mut(_binding_0));
        }
        crate::Expr::Struct(_binding_0) => {
            v.visit_expr_struct_mut(_binding_0);
        }
        crate::Expr::Try(_binding_0) => {
            full!(v.visit_expr_try_mut(_binding_0));
        }
        crate::Expr::TryBlock(_binding_0) => {
            full!(v.visit_expr_try_block_mut(_binding_0));
        }
        crate::Expr::Tuple(_binding_0) => {
            v.visit_expr_tuple_mut(_binding_0);
        }
        crate::Expr::Unary(_binding_0) => {
            v.visit_expr_unary_mut(_binding_0);
        }
        crate::Expr::Unsafe(_binding_0) => {
            full!(v.visit_expr_unsafe_mut(_binding_0));
        }
        crate::Expr::Verbatim(_binding_0) => {
            skip!(_binding_0);
        }
        crate::Expr::While(_binding_0) => {
            full!(v.visit_expr_while_mut(_binding_0));
        }
        crate::Expr::Yield(_binding_0) => {
            full!(v.visit_expr_yield_mut(_binding_0));
        }
    }
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_array_mut<V>(v: &mut V, node: &mut crate::ExprArray)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.bracket_token);
    for mut el in Punctuated::pairs_mut(&mut node.elems) {
        let it = el.value_mut();
        v.visit_expr_mut(it);
    }
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_assign_mut<V>(v: &mut V, node: &mut crate::ExprAssign)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_expr_mut(&mut *node.left);
    skip!(node.eq_token);
    v.visit_expr_mut(&mut *node.right);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_async_mut<V>(v: &mut V, node: &mut crate::ExprAsync)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.async_token);
    skip!(node.capture);
    v.visit_block_mut(&mut node.block);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_await_mut<V>(v: &mut V, node: &mut crate::ExprAwait)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_expr_mut(&mut *node.base);
    skip!(node.dot_token);
    skip!(node.await_token);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_binary_mut<V>(v: &mut V, node: &mut crate::ExprBinary)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_expr_mut(&mut *node.left);
    v.visit_bin_op_mut(&mut node.op);
    v.visit_expr_mut(&mut *node.right);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_block_mut<V>(v: &mut V, node: &mut crate::ExprBlock)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    if let Some(it) = &mut node.label {
        v.visit_label_mut(it);
    }
    v.visit_block_mut(&mut node.block);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_break_mut<V>(v: &mut V, node: &mut crate::ExprBreak)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.break_token);
    if let Some(it) = &mut node.label {
        v.visit_lifetime_mut(it);
    }
    if let Some(it) = &mut node.expr {
        v.visit_expr_mut(&mut **it);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_call_mut<V>(v: &mut V, node: &mut crate::ExprCall)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_expr_mut(&mut *node.func);
    skip!(node.paren_token);
    for mut el in Punctuated::pairs_mut(&mut node.args) {
        let it = el.value_mut();
        v.visit_expr_mut(it);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_cast_mut<V>(v: &mut V, node: &mut crate::ExprCast)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_expr_mut(&mut *node.expr);
    skip!(node.as_token);
    v.visit_type_mut(&mut *node.ty);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_closure_mut<V>(v: &mut V, node: &mut crate::ExprClosure)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    if let Some(it) = &mut node.lifetimes {
        v.visit_bound_lifetimes_mut(it);
    }
    skip!(node.constness);
    skip!(node.movability);
    skip!(node.asyncness);
    skip!(node.capture);
    skip!(node.or1_token);
    for mut el in Punctuated::pairs_mut(&mut node.inputs) {
        let it = el.value_mut();
        v.visit_pat_mut(it);
    }
    skip!(node.or2_token);
    v.visit_return_type_mut(&mut node.output);
    v.visit_expr_mut(&mut *node.body);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_const_mut<V>(v: &mut V, node: &mut crate::ExprConst)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.const_token);
    v.visit_block_mut(&mut node.block);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_continue_mut<V>(v: &mut V, node: &mut crate::ExprContinue)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.continue_token);
    if let Some(it) = &mut node.label {
        v.visit_lifetime_mut(it);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_field_mut<V>(v: &mut V, node: &mut crate::ExprField)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_expr_mut(&mut *node.base);
    skip!(node.dot_token);
    v.visit_member_mut(&mut node.member);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_for_loop_mut<V>(v: &mut V, node: &mut crate::ExprForLoop)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    if let Some(it) = &mut node.label {
        v.visit_label_mut(it);
    }
    skip!(node.for_token);
    v.visit_pat_mut(&mut *node.pat);
    skip!(node.in_token);
    v.visit_expr_mut(&mut *node.expr);
    v.visit_block_mut(&mut node.body);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_group_mut<V>(v: &mut V, node: &mut crate::ExprGroup)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.group_token);
    v.visit_expr_mut(&mut *node.expr);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_if_mut<V>(v: &mut V, node: &mut crate::ExprIf)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.if_token);
    v.visit_expr_mut(&mut *node.cond);
    v.visit_block_mut(&mut node.then_branch);
    if let Some(it) = &mut node.else_branch {
        skip!((it).0);
        v.visit_expr_mut(&mut *(it).1);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_index_mut<V>(v: &mut V, node: &mut crate::ExprIndex)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_expr_mut(&mut *node.expr);
    skip!(node.bracket_token);
    v.visit_expr_mut(&mut *node.index);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_infer_mut<V>(v: &mut V, node: &mut crate::ExprInfer)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.underscore_token);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_let_mut<V>(v: &mut V, node: &mut crate::ExprLet)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.let_token);
    v.visit_pat_mut(&mut *node.pat);
    skip!(node.eq_token);
    v.visit_expr_mut(&mut *node.expr);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_lit_mut<V>(v: &mut V, node: &mut crate::ExprLit)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_lit_mut(&mut node.lit);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_loop_mut<V>(v: &mut V, node: &mut crate::ExprLoop)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    if let Some(it) = &mut node.label {
        v.visit_label_mut(it);
    }
    skip!(node.loop_token);
    v.visit_block_mut(&mut node.body);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_macro_mut<V>(v: &mut V, node: &mut crate::ExprMacro)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_macro_mut(&mut node.mac);
}
#[cfg(feature = "full")]
#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
pub fn visit_expr_match_mut<V>(v: &mut V, node: &mut crate::ExprMatch)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.match_token);
    v.visit_expr_mut(&mut *node.expr);
    skip!(node.brace_token);
    for it in &mut node.arms {
        v.visit_arm_mut(it);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_method_call_mut<V>(v: &mut V, node: &mut crate::ExprMethodCall)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    v.visit_expr_mut(&mut *node.receiver);
    skip!(node.dot_token);
    v.visit_ident_mut(&mut node.method);
    if let Some(it) = &mut node.turbofish {
        v.visit_angle_bracketed_generic_arguments_mut(it);
    }
    skip!(node.paren_token);
    for mut el in Punctuated::pairs_mut(&mut node.args) {
        let it = el.value_mut();
        v.visit_expr_mut(it);
    }
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_paren_mut<V>(v: &mut V, node: &mut crate::ExprParen)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    skip!(node.paren_token);
    v.visit_expr_mut(&mut *node.expr);
}
#[cfg(any(feature = "derive", feature = "full"))]
#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
pub fn visit_expr_path_mut<V>(v: &mut V, node: &mut crate::ExprPath)
where
    V: VisitMut + ?Sized,
{
    v.visit_attributes_mut(&mut node.attrs);
    if let Some(it) = &mut node.qself {
        v.visit_qself_mut(it);
    }
    v.visit_path_mut(&mut node.path);
}
#[cfg(feature = "full")]
--> --------------------

--> maximum size reached

--> --------------------

[ Dauer der Verarbeitung: 0.48 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge