File Index
Files and directories
Sign in
FILE

visit_mut.rs

File preview with syntax highlighting.

linux-6.19.14/rust/syn/gen/visit_mut.rs RUST
   1// SPDX-License-Identifier: Apache-2.0 OR MIT
   2
   3// This file is @generated by syn-internal-codegen.
   4// It is not intended for manual editing.
   5
   6#![allow(unused_variables)]
   7#![allow(clippy::needless_pass_by_ref_mut)]
   8#[cfg(any(feature = "full", feature = "derive"))]
   9use crate::punctuated::Punctuated;
  10#[cfg(feature = "full")]
  11macro_rules! full {
  12    ($e:expr) => {
  13        $e
  14    };
  15}
  16#[cfg(all(feature = "derive", not(feature = "full")))]
  17macro_rules! full {
  18    ($e:expr) => {
  19        unreachable!()
  20    };
  21}
  22macro_rules! skip {
  23    ($($tt:tt)*) => {};
  24}
  25/// Syntax tree traversal to mutate an exclusive borrow of a syntax tree in
  26/// place.
  27///
  28/// See the [module documentation] for details.
  29///
  30/// [module documentation]: self
  31pub trait VisitMut {
  32    #[cfg(any(feature = "derive", feature = "full"))]
  33    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  34    fn visit_abi_mut(&mut self, i: &mut crate::Abi) {
  35        visit_abi_mut(self, i);
  36    }
  37    #[cfg(any(feature = "derive", feature = "full"))]
  38    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  39    fn visit_angle_bracketed_generic_arguments_mut(
  40        &mut self,
  41        i: &mut crate::AngleBracketedGenericArguments,
  42    ) {
  43        visit_angle_bracketed_generic_arguments_mut(self, i);
  44    }
  45    #[cfg(feature = "full")]
  46    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
  47    fn visit_arm_mut(&mut self, i: &mut crate::Arm) {
  48        visit_arm_mut(self, i);
  49    }
  50    #[cfg(any(feature = "derive", feature = "full"))]
  51    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  52    fn visit_assoc_const_mut(&mut self, i: &mut crate::AssocConst) {
  53        visit_assoc_const_mut(self, i);
  54    }
  55    #[cfg(any(feature = "derive", feature = "full"))]
  56    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  57    fn visit_assoc_type_mut(&mut self, i: &mut crate::AssocType) {
  58        visit_assoc_type_mut(self, i);
  59    }
  60    #[cfg(any(feature = "derive", feature = "full"))]
  61    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  62    fn visit_attr_style_mut(&mut self, i: &mut crate::AttrStyle) {
  63        visit_attr_style_mut(self, i);
  64    }
  65    #[cfg(any(feature = "derive", feature = "full"))]
  66    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  67    fn visit_attribute_mut(&mut self, i: &mut crate::Attribute) {
  68        visit_attribute_mut(self, i);
  69    }
  70    #[cfg(any(feature = "derive", feature = "full"))]
  71    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  72    fn visit_attributes_mut(&mut self, i: &mut Vec<crate::Attribute>) {
  73        for attr in i {
  74            self.visit_attribute_mut(attr);
  75        }
  76    }
  77    #[cfg(any(feature = "derive", feature = "full"))]
  78    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  79    fn visit_bare_fn_arg_mut(&mut self, i: &mut crate::BareFnArg) {
  80        visit_bare_fn_arg_mut(self, i);
  81    }
  82    #[cfg(any(feature = "derive", feature = "full"))]
  83    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  84    fn visit_bare_variadic_mut(&mut self, i: &mut crate::BareVariadic) {
  85        visit_bare_variadic_mut(self, i);
  86    }
  87    #[cfg(any(feature = "derive", feature = "full"))]
  88    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  89    fn visit_bin_op_mut(&mut self, i: &mut crate::BinOp) {
  90        visit_bin_op_mut(self, i);
  91    }
  92    #[cfg(feature = "full")]
  93    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
  94    fn visit_block_mut(&mut self, i: &mut crate::Block) {
  95        visit_block_mut(self, i);
  96    }
  97    #[cfg(any(feature = "derive", feature = "full"))]
  98    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
  99    fn visit_bound_lifetimes_mut(&mut self, i: &mut crate::BoundLifetimes) {
 100        visit_bound_lifetimes_mut(self, i);
 101    }
 102    #[cfg(feature = "full")]
 103    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 104    fn visit_captured_param_mut(&mut self, i: &mut crate::CapturedParam) {
 105        visit_captured_param_mut(self, i);
 106    }
 107    #[cfg(any(feature = "derive", feature = "full"))]
 108    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 109    fn visit_const_param_mut(&mut self, i: &mut crate::ConstParam) {
 110        visit_const_param_mut(self, i);
 111    }
 112    #[cfg(any(feature = "derive", feature = "full"))]
 113    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 114    fn visit_constraint_mut(&mut self, i: &mut crate::Constraint) {
 115        visit_constraint_mut(self, i);
 116    }
 117    #[cfg(feature = "derive")]
 118    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
 119    fn visit_data_mut(&mut self, i: &mut crate::Data) {
 120        visit_data_mut(self, i);
 121    }
 122    #[cfg(feature = "derive")]
 123    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
 124    fn visit_data_enum_mut(&mut self, i: &mut crate::DataEnum) {
 125        visit_data_enum_mut(self, i);
 126    }
 127    #[cfg(feature = "derive")]
 128    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
 129    fn visit_data_struct_mut(&mut self, i: &mut crate::DataStruct) {
 130        visit_data_struct_mut(self, i);
 131    }
 132    #[cfg(feature = "derive")]
 133    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
 134    fn visit_data_union_mut(&mut self, i: &mut crate::DataUnion) {
 135        visit_data_union_mut(self, i);
 136    }
 137    #[cfg(feature = "derive")]
 138    #[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
 139    fn visit_derive_input_mut(&mut self, i: &mut crate::DeriveInput) {
 140        visit_derive_input_mut(self, i);
 141    }
 142    #[cfg(any(feature = "derive", feature = "full"))]
 143    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 144    fn visit_expr_mut(&mut self, i: &mut crate::Expr) {
 145        visit_expr_mut(self, i);
 146    }
 147    #[cfg(feature = "full")]
 148    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 149    fn visit_expr_array_mut(&mut self, i: &mut crate::ExprArray) {
 150        visit_expr_array_mut(self, i);
 151    }
 152    #[cfg(feature = "full")]
 153    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 154    fn visit_expr_assign_mut(&mut self, i: &mut crate::ExprAssign) {
 155        visit_expr_assign_mut(self, i);
 156    }
 157    #[cfg(feature = "full")]
 158    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 159    fn visit_expr_async_mut(&mut self, i: &mut crate::ExprAsync) {
 160        visit_expr_async_mut(self, i);
 161    }
 162    #[cfg(feature = "full")]
 163    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 164    fn visit_expr_await_mut(&mut self, i: &mut crate::ExprAwait) {
 165        visit_expr_await_mut(self, i);
 166    }
 167    #[cfg(any(feature = "derive", feature = "full"))]
 168    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 169    fn visit_expr_binary_mut(&mut self, i: &mut crate::ExprBinary) {
 170        visit_expr_binary_mut(self, i);
 171    }
 172    #[cfg(feature = "full")]
 173    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 174    fn visit_expr_block_mut(&mut self, i: &mut crate::ExprBlock) {
 175        visit_expr_block_mut(self, i);
 176    }
 177    #[cfg(feature = "full")]
 178    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 179    fn visit_expr_break_mut(&mut self, i: &mut crate::ExprBreak) {
 180        visit_expr_break_mut(self, i);
 181    }
 182    #[cfg(any(feature = "derive", feature = "full"))]
 183    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 184    fn visit_expr_call_mut(&mut self, i: &mut crate::ExprCall) {
 185        visit_expr_call_mut(self, i);
 186    }
 187    #[cfg(any(feature = "derive", feature = "full"))]
 188    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 189    fn visit_expr_cast_mut(&mut self, i: &mut crate::ExprCast) {
 190        visit_expr_cast_mut(self, i);
 191    }
 192    #[cfg(feature = "full")]
 193    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 194    fn visit_expr_closure_mut(&mut self, i: &mut crate::ExprClosure) {
 195        visit_expr_closure_mut(self, i);
 196    }
 197    #[cfg(feature = "full")]
 198    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 199    fn visit_expr_const_mut(&mut self, i: &mut crate::ExprConst) {
 200        visit_expr_const_mut(self, i);
 201    }
 202    #[cfg(feature = "full")]
 203    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 204    fn visit_expr_continue_mut(&mut self, i: &mut crate::ExprContinue) {
 205        visit_expr_continue_mut(self, i);
 206    }
 207    #[cfg(any(feature = "derive", feature = "full"))]
 208    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 209    fn visit_expr_field_mut(&mut self, i: &mut crate::ExprField) {
 210        visit_expr_field_mut(self, i);
 211    }
 212    #[cfg(feature = "full")]
 213    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 214    fn visit_expr_for_loop_mut(&mut self, i: &mut crate::ExprForLoop) {
 215        visit_expr_for_loop_mut(self, i);
 216    }
 217    #[cfg(any(feature = "derive", feature = "full"))]
 218    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 219    fn visit_expr_group_mut(&mut self, i: &mut crate::ExprGroup) {
 220        visit_expr_group_mut(self, i);
 221    }
 222    #[cfg(feature = "full")]
 223    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 224    fn visit_expr_if_mut(&mut self, i: &mut crate::ExprIf) {
 225        visit_expr_if_mut(self, i);
 226    }
 227    #[cfg(any(feature = "derive", feature = "full"))]
 228    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 229    fn visit_expr_index_mut(&mut self, i: &mut crate::ExprIndex) {
 230        visit_expr_index_mut(self, i);
 231    }
 232    #[cfg(feature = "full")]
 233    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 234    fn visit_expr_infer_mut(&mut self, i: &mut crate::ExprInfer) {
 235        visit_expr_infer_mut(self, i);
 236    }
 237    #[cfg(feature = "full")]
 238    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 239    fn visit_expr_let_mut(&mut self, i: &mut crate::ExprLet) {
 240        visit_expr_let_mut(self, i);
 241    }
 242    #[cfg(any(feature = "derive", feature = "full"))]
 243    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 244    fn visit_expr_lit_mut(&mut self, i: &mut crate::ExprLit) {
 245        visit_expr_lit_mut(self, i);
 246    }
 247    #[cfg(feature = "full")]
 248    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 249    fn visit_expr_loop_mut(&mut self, i: &mut crate::ExprLoop) {
 250        visit_expr_loop_mut(self, i);
 251    }
 252    #[cfg(any(feature = "derive", feature = "full"))]
 253    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 254    fn visit_expr_macro_mut(&mut self, i: &mut crate::ExprMacro) {
 255        visit_expr_macro_mut(self, i);
 256    }
 257    #[cfg(feature = "full")]
 258    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 259    fn visit_expr_match_mut(&mut self, i: &mut crate::ExprMatch) {
 260        visit_expr_match_mut(self, i);
 261    }
 262    #[cfg(any(feature = "derive", feature = "full"))]
 263    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 264    fn visit_expr_method_call_mut(&mut self, i: &mut crate::ExprMethodCall) {
 265        visit_expr_method_call_mut(self, i);
 266    }
 267    #[cfg(any(feature = "derive", feature = "full"))]
 268    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 269    fn visit_expr_paren_mut(&mut self, i: &mut crate::ExprParen) {
 270        visit_expr_paren_mut(self, i);
 271    }
 272    #[cfg(any(feature = "derive", feature = "full"))]
 273    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 274    fn visit_expr_path_mut(&mut self, i: &mut crate::ExprPath) {
 275        visit_expr_path_mut(self, i);
 276    }
 277    #[cfg(feature = "full")]
 278    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 279    fn visit_expr_range_mut(&mut self, i: &mut crate::ExprRange) {
 280        visit_expr_range_mut(self, i);
 281    }
 282    #[cfg(feature = "full")]
 283    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 284    fn visit_expr_raw_addr_mut(&mut self, i: &mut crate::ExprRawAddr) {
 285        visit_expr_raw_addr_mut(self, i);
 286    }
 287    #[cfg(any(feature = "derive", feature = "full"))]
 288    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 289    fn visit_expr_reference_mut(&mut self, i: &mut crate::ExprReference) {
 290        visit_expr_reference_mut(self, i);
 291    }
 292    #[cfg(feature = "full")]
 293    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 294    fn visit_expr_repeat_mut(&mut self, i: &mut crate::ExprRepeat) {
 295        visit_expr_repeat_mut(self, i);
 296    }
 297    #[cfg(feature = "full")]
 298    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 299    fn visit_expr_return_mut(&mut self, i: &mut crate::ExprReturn) {
 300        visit_expr_return_mut(self, i);
 301    }
 302    #[cfg(any(feature = "derive", feature = "full"))]
 303    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 304    fn visit_expr_struct_mut(&mut self, i: &mut crate::ExprStruct) {
 305        visit_expr_struct_mut(self, i);
 306    }
 307    #[cfg(feature = "full")]
 308    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 309    fn visit_expr_try_mut(&mut self, i: &mut crate::ExprTry) {
 310        visit_expr_try_mut(self, i);
 311    }
 312    #[cfg(feature = "full")]
 313    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 314    fn visit_expr_try_block_mut(&mut self, i: &mut crate::ExprTryBlock) {
 315        visit_expr_try_block_mut(self, i);
 316    }
 317    #[cfg(any(feature = "derive", feature = "full"))]
 318    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 319    fn visit_expr_tuple_mut(&mut self, i: &mut crate::ExprTuple) {
 320        visit_expr_tuple_mut(self, i);
 321    }
 322    #[cfg(any(feature = "derive", feature = "full"))]
 323    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 324    fn visit_expr_unary_mut(&mut self, i: &mut crate::ExprUnary) {
 325        visit_expr_unary_mut(self, i);
 326    }
 327    #[cfg(feature = "full")]
 328    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 329    fn visit_expr_unsafe_mut(&mut self, i: &mut crate::ExprUnsafe) {
 330        visit_expr_unsafe_mut(self, i);
 331    }
 332    #[cfg(feature = "full")]
 333    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 334    fn visit_expr_while_mut(&mut self, i: &mut crate::ExprWhile) {
 335        visit_expr_while_mut(self, i);
 336    }
 337    #[cfg(feature = "full")]
 338    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 339    fn visit_expr_yield_mut(&mut self, i: &mut crate::ExprYield) {
 340        visit_expr_yield_mut(self, i);
 341    }
 342    #[cfg(any(feature = "derive", feature = "full"))]
 343    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 344    fn visit_field_mut(&mut self, i: &mut crate::Field) {
 345        visit_field_mut(self, i);
 346    }
 347    #[cfg(any(feature = "derive", feature = "full"))]
 348    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 349    fn visit_field_mutability_mut(&mut self, i: &mut crate::FieldMutability) {
 350        visit_field_mutability_mut(self, i);
 351    }
 352    #[cfg(feature = "full")]
 353    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 354    fn visit_field_pat_mut(&mut self, i: &mut crate::FieldPat) {
 355        visit_field_pat_mut(self, i);
 356    }
 357    #[cfg(any(feature = "derive", feature = "full"))]
 358    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 359    fn visit_field_value_mut(&mut self, i: &mut crate::FieldValue) {
 360        visit_field_value_mut(self, i);
 361    }
 362    #[cfg(any(feature = "derive", feature = "full"))]
 363    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 364    fn visit_fields_mut(&mut self, i: &mut crate::Fields) {
 365        visit_fields_mut(self, i);
 366    }
 367    #[cfg(any(feature = "derive", feature = "full"))]
 368    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 369    fn visit_fields_named_mut(&mut self, i: &mut crate::FieldsNamed) {
 370        visit_fields_named_mut(self, i);
 371    }
 372    #[cfg(any(feature = "derive", feature = "full"))]
 373    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 374    fn visit_fields_unnamed_mut(&mut self, i: &mut crate::FieldsUnnamed) {
 375        visit_fields_unnamed_mut(self, i);
 376    }
 377    #[cfg(feature = "full")]
 378    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 379    fn visit_file_mut(&mut self, i: &mut crate::File) {
 380        visit_file_mut(self, i);
 381    }
 382    #[cfg(feature = "full")]
 383    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 384    fn visit_fn_arg_mut(&mut self, i: &mut crate::FnArg) {
 385        visit_fn_arg_mut(self, i);
 386    }
 387    #[cfg(feature = "full")]
 388    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 389    fn visit_foreign_item_mut(&mut self, i: &mut crate::ForeignItem) {
 390        visit_foreign_item_mut(self, i);
 391    }
 392    #[cfg(feature = "full")]
 393    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 394    fn visit_foreign_item_fn_mut(&mut self, i: &mut crate::ForeignItemFn) {
 395        visit_foreign_item_fn_mut(self, i);
 396    }
 397    #[cfg(feature = "full")]
 398    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 399    fn visit_foreign_item_macro_mut(&mut self, i: &mut crate::ForeignItemMacro) {
 400        visit_foreign_item_macro_mut(self, i);
 401    }
 402    #[cfg(feature = "full")]
 403    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 404    fn visit_foreign_item_static_mut(&mut self, i: &mut crate::ForeignItemStatic) {
 405        visit_foreign_item_static_mut(self, i);
 406    }
 407    #[cfg(feature = "full")]
 408    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 409    fn visit_foreign_item_type_mut(&mut self, i: &mut crate::ForeignItemType) {
 410        visit_foreign_item_type_mut(self, i);
 411    }
 412    #[cfg(any(feature = "derive", feature = "full"))]
 413    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 414    fn visit_generic_argument_mut(&mut self, i: &mut crate::GenericArgument) {
 415        visit_generic_argument_mut(self, i);
 416    }
 417    #[cfg(any(feature = "derive", feature = "full"))]
 418    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 419    fn visit_generic_param_mut(&mut self, i: &mut crate::GenericParam) {
 420        visit_generic_param_mut(self, i);
 421    }
 422    #[cfg(any(feature = "derive", feature = "full"))]
 423    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 424    fn visit_generics_mut(&mut self, i: &mut crate::Generics) {
 425        visit_generics_mut(self, i);
 426    }
 427    fn visit_ident_mut(&mut self, i: &mut proc_macro2::Ident) {
 428        visit_ident_mut(self, i);
 429    }
 430    #[cfg(feature = "full")]
 431    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 432    fn visit_impl_item_mut(&mut self, i: &mut crate::ImplItem) {
 433        visit_impl_item_mut(self, i);
 434    }
 435    #[cfg(feature = "full")]
 436    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 437    fn visit_impl_item_const_mut(&mut self, i: &mut crate::ImplItemConst) {
 438        visit_impl_item_const_mut(self, i);
 439    }
 440    #[cfg(feature = "full")]
 441    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 442    fn visit_impl_item_fn_mut(&mut self, i: &mut crate::ImplItemFn) {
 443        visit_impl_item_fn_mut(self, i);
 444    }
 445    #[cfg(feature = "full")]
 446    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 447    fn visit_impl_item_macro_mut(&mut self, i: &mut crate::ImplItemMacro) {
 448        visit_impl_item_macro_mut(self, i);
 449    }
 450    #[cfg(feature = "full")]
 451    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 452    fn visit_impl_item_type_mut(&mut self, i: &mut crate::ImplItemType) {
 453        visit_impl_item_type_mut(self, i);
 454    }
 455    #[cfg(feature = "full")]
 456    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 457    fn visit_impl_restriction_mut(&mut self, i: &mut crate::ImplRestriction) {
 458        visit_impl_restriction_mut(self, i);
 459    }
 460    #[cfg(any(feature = "derive", feature = "full"))]
 461    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 462    fn visit_index_mut(&mut self, i: &mut crate::Index) {
 463        visit_index_mut(self, i);
 464    }
 465    #[cfg(feature = "full")]
 466    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 467    fn visit_item_mut(&mut self, i: &mut crate::Item) {
 468        visit_item_mut(self, i);
 469    }
 470    #[cfg(feature = "full")]
 471    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 472    fn visit_item_const_mut(&mut self, i: &mut crate::ItemConst) {
 473        visit_item_const_mut(self, i);
 474    }
 475    #[cfg(feature = "full")]
 476    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 477    fn visit_item_enum_mut(&mut self, i: &mut crate::ItemEnum) {
 478        visit_item_enum_mut(self, i);
 479    }
 480    #[cfg(feature = "full")]
 481    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 482    fn visit_item_extern_crate_mut(&mut self, i: &mut crate::ItemExternCrate) {
 483        visit_item_extern_crate_mut(self, i);
 484    }
 485    #[cfg(feature = "full")]
 486    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 487    fn visit_item_fn_mut(&mut self, i: &mut crate::ItemFn) {
 488        visit_item_fn_mut(self, i);
 489    }
 490    #[cfg(feature = "full")]
 491    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 492    fn visit_item_foreign_mod_mut(&mut self, i: &mut crate::ItemForeignMod) {
 493        visit_item_foreign_mod_mut(self, i);
 494    }
 495    #[cfg(feature = "full")]
 496    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 497    fn visit_item_impl_mut(&mut self, i: &mut crate::ItemImpl) {
 498        visit_item_impl_mut(self, i);
 499    }
 500    #[cfg(feature = "full")]
 501    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 502    fn visit_item_macro_mut(&mut self, i: &mut crate::ItemMacro) {
 503        visit_item_macro_mut(self, i);
 504    }
 505    #[cfg(feature = "full")]
 506    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 507    fn visit_item_mod_mut(&mut self, i: &mut crate::ItemMod) {
 508        visit_item_mod_mut(self, i);
 509    }
 510    #[cfg(feature = "full")]
 511    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 512    fn visit_item_static_mut(&mut self, i: &mut crate::ItemStatic) {
 513        visit_item_static_mut(self, i);
 514    }
 515    #[cfg(feature = "full")]
 516    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 517    fn visit_item_struct_mut(&mut self, i: &mut crate::ItemStruct) {
 518        visit_item_struct_mut(self, i);
 519    }
 520    #[cfg(feature = "full")]
 521    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 522    fn visit_item_trait_mut(&mut self, i: &mut crate::ItemTrait) {
 523        visit_item_trait_mut(self, i);
 524    }
 525    #[cfg(feature = "full")]
 526    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 527    fn visit_item_trait_alias_mut(&mut self, i: &mut crate::ItemTraitAlias) {
 528        visit_item_trait_alias_mut(self, i);
 529    }
 530    #[cfg(feature = "full")]
 531    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 532    fn visit_item_type_mut(&mut self, i: &mut crate::ItemType) {
 533        visit_item_type_mut(self, i);
 534    }
 535    #[cfg(feature = "full")]
 536    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 537    fn visit_item_union_mut(&mut self, i: &mut crate::ItemUnion) {
 538        visit_item_union_mut(self, i);
 539    }
 540    #[cfg(feature = "full")]
 541    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 542    fn visit_item_use_mut(&mut self, i: &mut crate::ItemUse) {
 543        visit_item_use_mut(self, i);
 544    }
 545    #[cfg(feature = "full")]
 546    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 547    fn visit_label_mut(&mut self, i: &mut crate::Label) {
 548        visit_label_mut(self, i);
 549    }
 550    fn visit_lifetime_mut(&mut self, i: &mut crate::Lifetime) {
 551        visit_lifetime_mut(self, i);
 552    }
 553    #[cfg(any(feature = "derive", feature = "full"))]
 554    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 555    fn visit_lifetime_param_mut(&mut self, i: &mut crate::LifetimeParam) {
 556        visit_lifetime_param_mut(self, i);
 557    }
 558    fn visit_lit_mut(&mut self, i: &mut crate::Lit) {
 559        visit_lit_mut(self, i);
 560    }
 561    fn visit_lit_bool_mut(&mut self, i: &mut crate::LitBool) {
 562        visit_lit_bool_mut(self, i);
 563    }
 564    fn visit_lit_byte_mut(&mut self, i: &mut crate::LitByte) {
 565        visit_lit_byte_mut(self, i);
 566    }
 567    fn visit_lit_byte_str_mut(&mut self, i: &mut crate::LitByteStr) {
 568        visit_lit_byte_str_mut(self, i);
 569    }
 570    fn visit_lit_cstr_mut(&mut self, i: &mut crate::LitCStr) {
 571        visit_lit_cstr_mut(self, i);
 572    }
 573    fn visit_lit_char_mut(&mut self, i: &mut crate::LitChar) {
 574        visit_lit_char_mut(self, i);
 575    }
 576    fn visit_lit_float_mut(&mut self, i: &mut crate::LitFloat) {
 577        visit_lit_float_mut(self, i);
 578    }
 579    fn visit_lit_int_mut(&mut self, i: &mut crate::LitInt) {
 580        visit_lit_int_mut(self, i);
 581    }
 582    fn visit_lit_str_mut(&mut self, i: &mut crate::LitStr) {
 583        visit_lit_str_mut(self, i);
 584    }
 585    #[cfg(feature = "full")]
 586    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 587    fn visit_local_mut(&mut self, i: &mut crate::Local) {
 588        visit_local_mut(self, i);
 589    }
 590    #[cfg(feature = "full")]
 591    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 592    fn visit_local_init_mut(&mut self, i: &mut crate::LocalInit) {
 593        visit_local_init_mut(self, i);
 594    }
 595    #[cfg(any(feature = "derive", feature = "full"))]
 596    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 597    fn visit_macro_mut(&mut self, i: &mut crate::Macro) {
 598        visit_macro_mut(self, i);
 599    }
 600    #[cfg(any(feature = "derive", feature = "full"))]
 601    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 602    fn visit_macro_delimiter_mut(&mut self, i: &mut crate::MacroDelimiter) {
 603        visit_macro_delimiter_mut(self, i);
 604    }
 605    #[cfg(any(feature = "derive", feature = "full"))]
 606    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 607    fn visit_member_mut(&mut self, i: &mut crate::Member) {
 608        visit_member_mut(self, i);
 609    }
 610    #[cfg(any(feature = "derive", feature = "full"))]
 611    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 612    fn visit_meta_mut(&mut self, i: &mut crate::Meta) {
 613        visit_meta_mut(self, i);
 614    }
 615    #[cfg(any(feature = "derive", feature = "full"))]
 616    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 617    fn visit_meta_list_mut(&mut self, i: &mut crate::MetaList) {
 618        visit_meta_list_mut(self, i);
 619    }
 620    #[cfg(any(feature = "derive", feature = "full"))]
 621    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 622    fn visit_meta_name_value_mut(&mut self, i: &mut crate::MetaNameValue) {
 623        visit_meta_name_value_mut(self, i);
 624    }
 625    #[cfg(any(feature = "derive", feature = "full"))]
 626    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 627    fn visit_parenthesized_generic_arguments_mut(
 628        &mut self,
 629        i: &mut crate::ParenthesizedGenericArguments,
 630    ) {
 631        visit_parenthesized_generic_arguments_mut(self, i);
 632    }
 633    #[cfg(feature = "full")]
 634    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 635    fn visit_pat_mut(&mut self, i: &mut crate::Pat) {
 636        visit_pat_mut(self, i);
 637    }
 638    #[cfg(feature = "full")]
 639    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 640    fn visit_pat_ident_mut(&mut self, i: &mut crate::PatIdent) {
 641        visit_pat_ident_mut(self, i);
 642    }
 643    #[cfg(feature = "full")]
 644    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 645    fn visit_pat_or_mut(&mut self, i: &mut crate::PatOr) {
 646        visit_pat_or_mut(self, i);
 647    }
 648    #[cfg(feature = "full")]
 649    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 650    fn visit_pat_paren_mut(&mut self, i: &mut crate::PatParen) {
 651        visit_pat_paren_mut(self, i);
 652    }
 653    #[cfg(feature = "full")]
 654    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 655    fn visit_pat_reference_mut(&mut self, i: &mut crate::PatReference) {
 656        visit_pat_reference_mut(self, i);
 657    }
 658    #[cfg(feature = "full")]
 659    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 660    fn visit_pat_rest_mut(&mut self, i: &mut crate::PatRest) {
 661        visit_pat_rest_mut(self, i);
 662    }
 663    #[cfg(feature = "full")]
 664    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 665    fn visit_pat_slice_mut(&mut self, i: &mut crate::PatSlice) {
 666        visit_pat_slice_mut(self, i);
 667    }
 668    #[cfg(feature = "full")]
 669    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 670    fn visit_pat_struct_mut(&mut self, i: &mut crate::PatStruct) {
 671        visit_pat_struct_mut(self, i);
 672    }
 673    #[cfg(feature = "full")]
 674    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 675    fn visit_pat_tuple_mut(&mut self, i: &mut crate::PatTuple) {
 676        visit_pat_tuple_mut(self, i);
 677    }
 678    #[cfg(feature = "full")]
 679    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 680    fn visit_pat_tuple_struct_mut(&mut self, i: &mut crate::PatTupleStruct) {
 681        visit_pat_tuple_struct_mut(self, i);
 682    }
 683    #[cfg(feature = "full")]
 684    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 685    fn visit_pat_type_mut(&mut self, i: &mut crate::PatType) {
 686        visit_pat_type_mut(self, i);
 687    }
 688    #[cfg(feature = "full")]
 689    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 690    fn visit_pat_wild_mut(&mut self, i: &mut crate::PatWild) {
 691        visit_pat_wild_mut(self, i);
 692    }
 693    #[cfg(any(feature = "derive", feature = "full"))]
 694    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 695    fn visit_path_mut(&mut self, i: &mut crate::Path) {
 696        visit_path_mut(self, i);
 697    }
 698    #[cfg(any(feature = "derive", feature = "full"))]
 699    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 700    fn visit_path_arguments_mut(&mut self, i: &mut crate::PathArguments) {
 701        visit_path_arguments_mut(self, i);
 702    }
 703    #[cfg(any(feature = "derive", feature = "full"))]
 704    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 705    fn visit_path_segment_mut(&mut self, i: &mut crate::PathSegment) {
 706        visit_path_segment_mut(self, i);
 707    }
 708    #[cfg(feature = "full")]
 709    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 710    fn visit_pointer_mutability_mut(&mut self, i: &mut crate::PointerMutability) {
 711        visit_pointer_mutability_mut(self, i);
 712    }
 713    #[cfg(feature = "full")]
 714    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 715    fn visit_precise_capture_mut(&mut self, i: &mut crate::PreciseCapture) {
 716        visit_precise_capture_mut(self, i);
 717    }
 718    #[cfg(any(feature = "derive", feature = "full"))]
 719    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 720    fn visit_predicate_lifetime_mut(&mut self, i: &mut crate::PredicateLifetime) {
 721        visit_predicate_lifetime_mut(self, i);
 722    }
 723    #[cfg(any(feature = "derive", feature = "full"))]
 724    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 725    fn visit_predicate_type_mut(&mut self, i: &mut crate::PredicateType) {
 726        visit_predicate_type_mut(self, i);
 727    }
 728    #[cfg(any(feature = "derive", feature = "full"))]
 729    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 730    fn visit_qself_mut(&mut self, i: &mut crate::QSelf) {
 731        visit_qself_mut(self, i);
 732    }
 733    #[cfg(feature = "full")]
 734    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 735    fn visit_range_limits_mut(&mut self, i: &mut crate::RangeLimits) {
 736        visit_range_limits_mut(self, i);
 737    }
 738    #[cfg(feature = "full")]
 739    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 740    fn visit_receiver_mut(&mut self, i: &mut crate::Receiver) {
 741        visit_receiver_mut(self, i);
 742    }
 743    #[cfg(any(feature = "derive", feature = "full"))]
 744    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 745    fn visit_return_type_mut(&mut self, i: &mut crate::ReturnType) {
 746        visit_return_type_mut(self, i);
 747    }
 748    #[cfg(feature = "full")]
 749    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 750    fn visit_signature_mut(&mut self, i: &mut crate::Signature) {
 751        visit_signature_mut(self, i);
 752    }
 753    fn visit_span_mut(&mut self, i: &mut proc_macro2::Span) {}
 754    #[cfg(feature = "full")]
 755    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 756    fn visit_static_mutability_mut(&mut self, i: &mut crate::StaticMutability) {
 757        visit_static_mutability_mut(self, i);
 758    }
 759    #[cfg(feature = "full")]
 760    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 761    fn visit_stmt_mut(&mut self, i: &mut crate::Stmt) {
 762        visit_stmt_mut(self, i);
 763    }
 764    #[cfg(feature = "full")]
 765    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 766    fn visit_stmt_macro_mut(&mut self, i: &mut crate::StmtMacro) {
 767        visit_stmt_macro_mut(self, i);
 768    }
 769    fn visit_token_stream_mut(&mut self, i: &mut proc_macro2::TokenStream) {}
 770    #[cfg(any(feature = "derive", feature = "full"))]
 771    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 772    fn visit_trait_bound_mut(&mut self, i: &mut crate::TraitBound) {
 773        visit_trait_bound_mut(self, i);
 774    }
 775    #[cfg(any(feature = "derive", feature = "full"))]
 776    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 777    fn visit_trait_bound_modifier_mut(&mut self, i: &mut crate::TraitBoundModifier) {
 778        visit_trait_bound_modifier_mut(self, i);
 779    }
 780    #[cfg(feature = "full")]
 781    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 782    fn visit_trait_item_mut(&mut self, i: &mut crate::TraitItem) {
 783        visit_trait_item_mut(self, i);
 784    }
 785    #[cfg(feature = "full")]
 786    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 787    fn visit_trait_item_const_mut(&mut self, i: &mut crate::TraitItemConst) {
 788        visit_trait_item_const_mut(self, i);
 789    }
 790    #[cfg(feature = "full")]
 791    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 792    fn visit_trait_item_fn_mut(&mut self, i: &mut crate::TraitItemFn) {
 793        visit_trait_item_fn_mut(self, i);
 794    }
 795    #[cfg(feature = "full")]
 796    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 797    fn visit_trait_item_macro_mut(&mut self, i: &mut crate::TraitItemMacro) {
 798        visit_trait_item_macro_mut(self, i);
 799    }
 800    #[cfg(feature = "full")]
 801    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 802    fn visit_trait_item_type_mut(&mut self, i: &mut crate::TraitItemType) {
 803        visit_trait_item_type_mut(self, i);
 804    }
 805    #[cfg(any(feature = "derive", feature = "full"))]
 806    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 807    fn visit_type_mut(&mut self, i: &mut crate::Type) {
 808        visit_type_mut(self, i);
 809    }
 810    #[cfg(any(feature = "derive", feature = "full"))]
 811    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 812    fn visit_type_array_mut(&mut self, i: &mut crate::TypeArray) {
 813        visit_type_array_mut(self, i);
 814    }
 815    #[cfg(any(feature = "derive", feature = "full"))]
 816    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 817    fn visit_type_bare_fn_mut(&mut self, i: &mut crate::TypeBareFn) {
 818        visit_type_bare_fn_mut(self, i);
 819    }
 820    #[cfg(any(feature = "derive", feature = "full"))]
 821    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 822    fn visit_type_group_mut(&mut self, i: &mut crate::TypeGroup) {
 823        visit_type_group_mut(self, i);
 824    }
 825    #[cfg(any(feature = "derive", feature = "full"))]
 826    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 827    fn visit_type_impl_trait_mut(&mut self, i: &mut crate::TypeImplTrait) {
 828        visit_type_impl_trait_mut(self, i);
 829    }
 830    #[cfg(any(feature = "derive", feature = "full"))]
 831    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 832    fn visit_type_infer_mut(&mut self, i: &mut crate::TypeInfer) {
 833        visit_type_infer_mut(self, i);
 834    }
 835    #[cfg(any(feature = "derive", feature = "full"))]
 836    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 837    fn visit_type_macro_mut(&mut self, i: &mut crate::TypeMacro) {
 838        visit_type_macro_mut(self, i);
 839    }
 840    #[cfg(any(feature = "derive", feature = "full"))]
 841    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 842    fn visit_type_never_mut(&mut self, i: &mut crate::TypeNever) {
 843        visit_type_never_mut(self, i);
 844    }
 845    #[cfg(any(feature = "derive", feature = "full"))]
 846    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 847    fn visit_type_param_mut(&mut self, i: &mut crate::TypeParam) {
 848        visit_type_param_mut(self, i);
 849    }
 850    #[cfg(any(feature = "derive", feature = "full"))]
 851    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 852    fn visit_type_param_bound_mut(&mut self, i: &mut crate::TypeParamBound) {
 853        visit_type_param_bound_mut(self, i);
 854    }
 855    #[cfg(any(feature = "derive", feature = "full"))]
 856    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 857    fn visit_type_paren_mut(&mut self, i: &mut crate::TypeParen) {
 858        visit_type_paren_mut(self, i);
 859    }
 860    #[cfg(any(feature = "derive", feature = "full"))]
 861    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 862    fn visit_type_path_mut(&mut self, i: &mut crate::TypePath) {
 863        visit_type_path_mut(self, i);
 864    }
 865    #[cfg(any(feature = "derive", feature = "full"))]
 866    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 867    fn visit_type_ptr_mut(&mut self, i: &mut crate::TypePtr) {
 868        visit_type_ptr_mut(self, i);
 869    }
 870    #[cfg(any(feature = "derive", feature = "full"))]
 871    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 872    fn visit_type_reference_mut(&mut self, i: &mut crate::TypeReference) {
 873        visit_type_reference_mut(self, i);
 874    }
 875    #[cfg(any(feature = "derive", feature = "full"))]
 876    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 877    fn visit_type_slice_mut(&mut self, i: &mut crate::TypeSlice) {
 878        visit_type_slice_mut(self, i);
 879    }
 880    #[cfg(any(feature = "derive", feature = "full"))]
 881    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 882    fn visit_type_trait_object_mut(&mut self, i: &mut crate::TypeTraitObject) {
 883        visit_type_trait_object_mut(self, i);
 884    }
 885    #[cfg(any(feature = "derive", feature = "full"))]
 886    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 887    fn visit_type_tuple_mut(&mut self, i: &mut crate::TypeTuple) {
 888        visit_type_tuple_mut(self, i);
 889    }
 890    #[cfg(any(feature = "derive", feature = "full"))]
 891    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 892    fn visit_un_op_mut(&mut self, i: &mut crate::UnOp) {
 893        visit_un_op_mut(self, i);
 894    }
 895    #[cfg(feature = "full")]
 896    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 897    fn visit_use_glob_mut(&mut self, i: &mut crate::UseGlob) {
 898        visit_use_glob_mut(self, i);
 899    }
 900    #[cfg(feature = "full")]
 901    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 902    fn visit_use_group_mut(&mut self, i: &mut crate::UseGroup) {
 903        visit_use_group_mut(self, i);
 904    }
 905    #[cfg(feature = "full")]
 906    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 907    fn visit_use_name_mut(&mut self, i: &mut crate::UseName) {
 908        visit_use_name_mut(self, i);
 909    }
 910    #[cfg(feature = "full")]
 911    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 912    fn visit_use_path_mut(&mut self, i: &mut crate::UsePath) {
 913        visit_use_path_mut(self, i);
 914    }
 915    #[cfg(feature = "full")]
 916    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 917    fn visit_use_rename_mut(&mut self, i: &mut crate::UseRename) {
 918        visit_use_rename_mut(self, i);
 919    }
 920    #[cfg(feature = "full")]
 921    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 922    fn visit_use_tree_mut(&mut self, i: &mut crate::UseTree) {
 923        visit_use_tree_mut(self, i);
 924    }
 925    #[cfg(feature = "full")]
 926    #[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 927    fn visit_variadic_mut(&mut self, i: &mut crate::Variadic) {
 928        visit_variadic_mut(self, i);
 929    }
 930    #[cfg(any(feature = "derive", feature = "full"))]
 931    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 932    fn visit_variant_mut(&mut self, i: &mut crate::Variant) {
 933        visit_variant_mut(self, i);
 934    }
 935    #[cfg(any(feature = "derive", feature = "full"))]
 936    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 937    fn visit_vis_restricted_mut(&mut self, i: &mut crate::VisRestricted) {
 938        visit_vis_restricted_mut(self, i);
 939    }
 940    #[cfg(any(feature = "derive", feature = "full"))]
 941    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 942    fn visit_visibility_mut(&mut self, i: &mut crate::Visibility) {
 943        visit_visibility_mut(self, i);
 944    }
 945    #[cfg(any(feature = "derive", feature = "full"))]
 946    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 947    fn visit_where_clause_mut(&mut self, i: &mut crate::WhereClause) {
 948        visit_where_clause_mut(self, i);
 949    }
 950    #[cfg(any(feature = "derive", feature = "full"))]
 951    #[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 952    fn visit_where_predicate_mut(&mut self, i: &mut crate::WherePredicate) {
 953        visit_where_predicate_mut(self, i);
 954    }
 955}
 956#[cfg(any(feature = "derive", feature = "full"))]
 957#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 958pub fn visit_abi_mut<V>(v: &mut V, node: &mut crate::Abi)
 959where
 960    V: VisitMut + ?Sized,
 961{
 962    skip!(node.extern_token);
 963    if let Some(it) = &mut node.name {
 964        v.visit_lit_str_mut(it);
 965    }
 966}
 967#[cfg(any(feature = "derive", feature = "full"))]
 968#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
 969pub fn visit_angle_bracketed_generic_arguments_mut<V>(
 970    v: &mut V,
 971    node: &mut crate::AngleBracketedGenericArguments,
 972)
 973where
 974    V: VisitMut + ?Sized,
 975{
 976    skip!(node.colon2_token);
 977    skip!(node.lt_token);
 978    for mut el in Punctuated::pairs_mut(&mut node.args) {
 979        let it = el.value_mut();
 980        v.visit_generic_argument_mut(it);
 981    }
 982    skip!(node.gt_token);
 983}
 984#[cfg(feature = "full")]
 985#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
 986pub fn visit_arm_mut<V>(v: &mut V, node: &mut crate::Arm)
 987where
 988    V: VisitMut + ?Sized,
 989{
 990    v.visit_attributes_mut(&mut node.attrs);
 991    v.visit_pat_mut(&mut node.pat);
 992    if let Some(it) = &mut node.guard {
 993        skip!((it).0);
 994        v.visit_expr_mut(&mut *(it).1);
 995    }
 996    skip!(node.fat_arrow_token);
 997    v.visit_expr_mut(&mut *node.body);
 998    skip!(node.comma);
 999}
1000#[cfg(any(feature = "derive", feature = "full"))]
1001#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1002pub fn visit_assoc_const_mut<V>(v: &mut V, node: &mut crate::AssocConst)
1003where
1004    V: VisitMut + ?Sized,
1005{
1006    v.visit_ident_mut(&mut node.ident);
1007    if let Some(it) = &mut node.generics {
1008        v.visit_angle_bracketed_generic_arguments_mut(it);
1009    }
1010    skip!(node.eq_token);
1011    v.visit_expr_mut(&mut node.value);
1012}
1013#[cfg(any(feature = "derive", feature = "full"))]
1014#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1015pub fn visit_assoc_type_mut<V>(v: &mut V, node: &mut crate::AssocType)
1016where
1017    V: VisitMut + ?Sized,
1018{
1019    v.visit_ident_mut(&mut node.ident);
1020    if let Some(it) = &mut node.generics {
1021        v.visit_angle_bracketed_generic_arguments_mut(it);
1022    }
1023    skip!(node.eq_token);
1024    v.visit_type_mut(&mut node.ty);
1025}
1026#[cfg(any(feature = "derive", feature = "full"))]
1027#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1028pub fn visit_attr_style_mut<V>(v: &mut V, node: &mut crate::AttrStyle)
1029where
1030    V: VisitMut + ?Sized,
1031{
1032    match node {
1033        crate::AttrStyle::Outer => {}
1034        crate::AttrStyle::Inner(_binding_0) => {
1035            skip!(_binding_0);
1036        }
1037    }
1038}
1039#[cfg(any(feature = "derive", feature = "full"))]
1040#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1041pub fn visit_attribute_mut<V>(v: &mut V, node: &mut crate::Attribute)
1042where
1043    V: VisitMut + ?Sized,
1044{
1045    skip!(node.pound_token);
1046    v.visit_attr_style_mut(&mut node.style);
1047    skip!(node.bracket_token);
1048    v.visit_meta_mut(&mut node.meta);
1049}
1050#[cfg(any(feature = "derive", feature = "full"))]
1051#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1052pub fn visit_bare_fn_arg_mut<V>(v: &mut V, node: &mut crate::BareFnArg)
1053where
1054    V: VisitMut + ?Sized,
1055{
1056    v.visit_attributes_mut(&mut node.attrs);
1057    if let Some(it) = &mut node.name {
1058        v.visit_ident_mut(&mut (it).0);
1059        skip!((it).1);
1060    }
1061    v.visit_type_mut(&mut node.ty);
1062}
1063#[cfg(any(feature = "derive", feature = "full"))]
1064#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1065pub fn visit_bare_variadic_mut<V>(v: &mut V, node: &mut crate::BareVariadic)
1066where
1067    V: VisitMut + ?Sized,
1068{
1069    v.visit_attributes_mut(&mut node.attrs);
1070    if let Some(it) = &mut node.name {
1071        v.visit_ident_mut(&mut (it).0);
1072        skip!((it).1);
1073    }
1074    skip!(node.dots);
1075    skip!(node.comma);
1076}
1077#[cfg(any(feature = "derive", feature = "full"))]
1078#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1079pub fn visit_bin_op_mut<V>(v: &mut V, node: &mut crate::BinOp)
1080where
1081    V: VisitMut + ?Sized,
1082{
1083    match node {
1084        crate::BinOp::Add(_binding_0) => {
1085            skip!(_binding_0);
1086        }
1087        crate::BinOp::Sub(_binding_0) => {
1088            skip!(_binding_0);
1089        }
1090        crate::BinOp::Mul(_binding_0) => {
1091            skip!(_binding_0);
1092        }
1093        crate::BinOp::Div(_binding_0) => {
1094            skip!(_binding_0);
1095        }
1096        crate::BinOp::Rem(_binding_0) => {
1097            skip!(_binding_0);
1098        }
1099        crate::BinOp::And(_binding_0) => {
1100            skip!(_binding_0);
1101        }
1102        crate::BinOp::Or(_binding_0) => {
1103            skip!(_binding_0);
1104        }
1105        crate::BinOp::BitXor(_binding_0) => {
1106            skip!(_binding_0);
1107        }
1108        crate::BinOp::BitAnd(_binding_0) => {
1109            skip!(_binding_0);
1110        }
1111        crate::BinOp::BitOr(_binding_0) => {
1112            skip!(_binding_0);
1113        }
1114        crate::BinOp::Shl(_binding_0) => {
1115            skip!(_binding_0);
1116        }
1117        crate::BinOp::Shr(_binding_0) => {
1118            skip!(_binding_0);
1119        }
1120        crate::BinOp::Eq(_binding_0) => {
1121            skip!(_binding_0);
1122        }
1123        crate::BinOp::Lt(_binding_0) => {
1124            skip!(_binding_0);
1125        }
1126        crate::BinOp::Le(_binding_0) => {
1127            skip!(_binding_0);
1128        }
1129        crate::BinOp::Ne(_binding_0) => {
1130            skip!(_binding_0);
1131        }
1132        crate::BinOp::Ge(_binding_0) => {
1133            skip!(_binding_0);
1134        }
1135        crate::BinOp::Gt(_binding_0) => {
1136            skip!(_binding_0);
1137        }
1138        crate::BinOp::AddAssign(_binding_0) => {
1139            skip!(_binding_0);
1140        }
1141        crate::BinOp::SubAssign(_binding_0) => {
1142            skip!(_binding_0);
1143        }
1144        crate::BinOp::MulAssign(_binding_0) => {
1145            skip!(_binding_0);
1146        }
1147        crate::BinOp::DivAssign(_binding_0) => {
1148            skip!(_binding_0);
1149        }
1150        crate::BinOp::RemAssign(_binding_0) => {
1151            skip!(_binding_0);
1152        }
1153        crate::BinOp::BitXorAssign(_binding_0) => {
1154            skip!(_binding_0);
1155        }
1156        crate::BinOp::BitAndAssign(_binding_0) => {
1157            skip!(_binding_0);
1158        }
1159        crate::BinOp::BitOrAssign(_binding_0) => {
1160            skip!(_binding_0);
1161        }
1162        crate::BinOp::ShlAssign(_binding_0) => {
1163            skip!(_binding_0);
1164        }
1165        crate::BinOp::ShrAssign(_binding_0) => {
1166            skip!(_binding_0);
1167        }
1168    }
1169}
1170#[cfg(feature = "full")]
1171#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1172pub fn visit_block_mut<V>(v: &mut V, node: &mut crate::Block)
1173where
1174    V: VisitMut + ?Sized,
1175{
1176    skip!(node.brace_token);
1177    for it in &mut node.stmts {
1178        v.visit_stmt_mut(it);
1179    }
1180}
1181#[cfg(any(feature = "derive", feature = "full"))]
1182#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1183pub fn visit_bound_lifetimes_mut<V>(v: &mut V, node: &mut crate::BoundLifetimes)
1184where
1185    V: VisitMut + ?Sized,
1186{
1187    skip!(node.for_token);
1188    skip!(node.lt_token);
1189    for mut el in Punctuated::pairs_mut(&mut node.lifetimes) {
1190        let it = el.value_mut();
1191        v.visit_generic_param_mut(it);
1192    }
1193    skip!(node.gt_token);
1194}
1195#[cfg(feature = "full")]
1196#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1197pub fn visit_captured_param_mut<V>(v: &mut V, node: &mut crate::CapturedParam)
1198where
1199    V: VisitMut + ?Sized,
1200{
1201    match node {
1202        crate::CapturedParam::Lifetime(_binding_0) => {
1203            v.visit_lifetime_mut(_binding_0);
1204        }
1205        crate::CapturedParam::Ident(_binding_0) => {
1206            v.visit_ident_mut(_binding_0);
1207        }
1208    }
1209}
1210#[cfg(any(feature = "derive", feature = "full"))]
1211#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1212pub fn visit_const_param_mut<V>(v: &mut V, node: &mut crate::ConstParam)
1213where
1214    V: VisitMut + ?Sized,
1215{
1216    v.visit_attributes_mut(&mut node.attrs);
1217    skip!(node.const_token);
1218    v.visit_ident_mut(&mut node.ident);
1219    skip!(node.colon_token);
1220    v.visit_type_mut(&mut node.ty);
1221    skip!(node.eq_token);
1222    if let Some(it) = &mut node.default {
1223        v.visit_expr_mut(it);
1224    }
1225}
1226#[cfg(any(feature = "derive", feature = "full"))]
1227#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1228pub fn visit_constraint_mut<V>(v: &mut V, node: &mut crate::Constraint)
1229where
1230    V: VisitMut + ?Sized,
1231{
1232    v.visit_ident_mut(&mut node.ident);
1233    if let Some(it) = &mut node.generics {
1234        v.visit_angle_bracketed_generic_arguments_mut(it);
1235    }
1236    skip!(node.colon_token);
1237    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
1238        let it = el.value_mut();
1239        v.visit_type_param_bound_mut(it);
1240    }
1241}
1242#[cfg(feature = "derive")]
1243#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
1244pub fn visit_data_mut<V>(v: &mut V, node: &mut crate::Data)
1245where
1246    V: VisitMut + ?Sized,
1247{
1248    match node {
1249        crate::Data::Struct(_binding_0) => {
1250            v.visit_data_struct_mut(_binding_0);
1251        }
1252        crate::Data::Enum(_binding_0) => {
1253            v.visit_data_enum_mut(_binding_0);
1254        }
1255        crate::Data::Union(_binding_0) => {
1256            v.visit_data_union_mut(_binding_0);
1257        }
1258    }
1259}
1260#[cfg(feature = "derive")]
1261#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
1262pub fn visit_data_enum_mut<V>(v: &mut V, node: &mut crate::DataEnum)
1263where
1264    V: VisitMut + ?Sized,
1265{
1266    skip!(node.enum_token);
1267    skip!(node.brace_token);
1268    for mut el in Punctuated::pairs_mut(&mut node.variants) {
1269        let it = el.value_mut();
1270        v.visit_variant_mut(it);
1271    }
1272}
1273#[cfg(feature = "derive")]
1274#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
1275pub fn visit_data_struct_mut<V>(v: &mut V, node: &mut crate::DataStruct)
1276where
1277    V: VisitMut + ?Sized,
1278{
1279    skip!(node.struct_token);
1280    v.visit_fields_mut(&mut node.fields);
1281    skip!(node.semi_token);
1282}
1283#[cfg(feature = "derive")]
1284#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
1285pub fn visit_data_union_mut<V>(v: &mut V, node: &mut crate::DataUnion)
1286where
1287    V: VisitMut + ?Sized,
1288{
1289    skip!(node.union_token);
1290    v.visit_fields_named_mut(&mut node.fields);
1291}
1292#[cfg(feature = "derive")]
1293#[cfg_attr(docsrs, doc(cfg(feature = "derive")))]
1294pub fn visit_derive_input_mut<V>(v: &mut V, node: &mut crate::DeriveInput)
1295where
1296    V: VisitMut + ?Sized,
1297{
1298    v.visit_attributes_mut(&mut node.attrs);
1299    v.visit_visibility_mut(&mut node.vis);
1300    v.visit_ident_mut(&mut node.ident);
1301    v.visit_generics_mut(&mut node.generics);
1302    v.visit_data_mut(&mut node.data);
1303}
1304#[cfg(any(feature = "derive", feature = "full"))]
1305#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1306pub fn visit_expr_mut<V>(v: &mut V, node: &mut crate::Expr)
1307where
1308    V: VisitMut + ?Sized,
1309{
1310    match node {
1311        crate::Expr::Array(_binding_0) => {
1312            full!(v.visit_expr_array_mut(_binding_0));
1313        }
1314        crate::Expr::Assign(_binding_0) => {
1315            full!(v.visit_expr_assign_mut(_binding_0));
1316        }
1317        crate::Expr::Async(_binding_0) => {
1318            full!(v.visit_expr_async_mut(_binding_0));
1319        }
1320        crate::Expr::Await(_binding_0) => {
1321            full!(v.visit_expr_await_mut(_binding_0));
1322        }
1323        crate::Expr::Binary(_binding_0) => {
1324            v.visit_expr_binary_mut(_binding_0);
1325        }
1326        crate::Expr::Block(_binding_0) => {
1327            full!(v.visit_expr_block_mut(_binding_0));
1328        }
1329        crate::Expr::Break(_binding_0) => {
1330            full!(v.visit_expr_break_mut(_binding_0));
1331        }
1332        crate::Expr::Call(_binding_0) => {
1333            v.visit_expr_call_mut(_binding_0);
1334        }
1335        crate::Expr::Cast(_binding_0) => {
1336            v.visit_expr_cast_mut(_binding_0);
1337        }
1338        crate::Expr::Closure(_binding_0) => {
1339            full!(v.visit_expr_closure_mut(_binding_0));
1340        }
1341        crate::Expr::Const(_binding_0) => {
1342            full!(v.visit_expr_const_mut(_binding_0));
1343        }
1344        crate::Expr::Continue(_binding_0) => {
1345            full!(v.visit_expr_continue_mut(_binding_0));
1346        }
1347        crate::Expr::Field(_binding_0) => {
1348            v.visit_expr_field_mut(_binding_0);
1349        }
1350        crate::Expr::ForLoop(_binding_0) => {
1351            full!(v.visit_expr_for_loop_mut(_binding_0));
1352        }
1353        crate::Expr::Group(_binding_0) => {
1354            v.visit_expr_group_mut(_binding_0);
1355        }
1356        crate::Expr::If(_binding_0) => {
1357            full!(v.visit_expr_if_mut(_binding_0));
1358        }
1359        crate::Expr::Index(_binding_0) => {
1360            v.visit_expr_index_mut(_binding_0);
1361        }
1362        crate::Expr::Infer(_binding_0) => {
1363            full!(v.visit_expr_infer_mut(_binding_0));
1364        }
1365        crate::Expr::Let(_binding_0) => {
1366            full!(v.visit_expr_let_mut(_binding_0));
1367        }
1368        crate::Expr::Lit(_binding_0) => {
1369            v.visit_expr_lit_mut(_binding_0);
1370        }
1371        crate::Expr::Loop(_binding_0) => {
1372            full!(v.visit_expr_loop_mut(_binding_0));
1373        }
1374        crate::Expr::Macro(_binding_0) => {
1375            v.visit_expr_macro_mut(_binding_0);
1376        }
1377        crate::Expr::Match(_binding_0) => {
1378            full!(v.visit_expr_match_mut(_binding_0));
1379        }
1380        crate::Expr::MethodCall(_binding_0) => {
1381            v.visit_expr_method_call_mut(_binding_0);
1382        }
1383        crate::Expr::Paren(_binding_0) => {
1384            v.visit_expr_paren_mut(_binding_0);
1385        }
1386        crate::Expr::Path(_binding_0) => {
1387            v.visit_expr_path_mut(_binding_0);
1388        }
1389        crate::Expr::Range(_binding_0) => {
1390            full!(v.visit_expr_range_mut(_binding_0));
1391        }
1392        crate::Expr::RawAddr(_binding_0) => {
1393            full!(v.visit_expr_raw_addr_mut(_binding_0));
1394        }
1395        crate::Expr::Reference(_binding_0) => {
1396            v.visit_expr_reference_mut(_binding_0);
1397        }
1398        crate::Expr::Repeat(_binding_0) => {
1399            full!(v.visit_expr_repeat_mut(_binding_0));
1400        }
1401        crate::Expr::Return(_binding_0) => {
1402            full!(v.visit_expr_return_mut(_binding_0));
1403        }
1404        crate::Expr::Struct(_binding_0) => {
1405            v.visit_expr_struct_mut(_binding_0);
1406        }
1407        crate::Expr::Try(_binding_0) => {
1408            full!(v.visit_expr_try_mut(_binding_0));
1409        }
1410        crate::Expr::TryBlock(_binding_0) => {
1411            full!(v.visit_expr_try_block_mut(_binding_0));
1412        }
1413        crate::Expr::Tuple(_binding_0) => {
1414            v.visit_expr_tuple_mut(_binding_0);
1415        }
1416        crate::Expr::Unary(_binding_0) => {
1417            v.visit_expr_unary_mut(_binding_0);
1418        }
1419        crate::Expr::Unsafe(_binding_0) => {
1420            full!(v.visit_expr_unsafe_mut(_binding_0));
1421        }
1422        crate::Expr::Verbatim(_binding_0) => {
1423            v.visit_token_stream_mut(_binding_0);
1424        }
1425        crate::Expr::While(_binding_0) => {
1426            full!(v.visit_expr_while_mut(_binding_0));
1427        }
1428        crate::Expr::Yield(_binding_0) => {
1429            full!(v.visit_expr_yield_mut(_binding_0));
1430        }
1431    }
1432}
1433#[cfg(feature = "full")]
1434#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1435pub fn visit_expr_array_mut<V>(v: &mut V, node: &mut crate::ExprArray)
1436where
1437    V: VisitMut + ?Sized,
1438{
1439    v.visit_attributes_mut(&mut node.attrs);
1440    skip!(node.bracket_token);
1441    for mut el in Punctuated::pairs_mut(&mut node.elems) {
1442        let it = el.value_mut();
1443        v.visit_expr_mut(it);
1444    }
1445}
1446#[cfg(feature = "full")]
1447#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1448pub fn visit_expr_assign_mut<V>(v: &mut V, node: &mut crate::ExprAssign)
1449where
1450    V: VisitMut + ?Sized,
1451{
1452    v.visit_attributes_mut(&mut node.attrs);
1453    v.visit_expr_mut(&mut *node.left);
1454    skip!(node.eq_token);
1455    v.visit_expr_mut(&mut *node.right);
1456}
1457#[cfg(feature = "full")]
1458#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1459pub fn visit_expr_async_mut<V>(v: &mut V, node: &mut crate::ExprAsync)
1460where
1461    V: VisitMut + ?Sized,
1462{
1463    v.visit_attributes_mut(&mut node.attrs);
1464    skip!(node.async_token);
1465    skip!(node.capture);
1466    v.visit_block_mut(&mut node.block);
1467}
1468#[cfg(feature = "full")]
1469#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1470pub fn visit_expr_await_mut<V>(v: &mut V, node: &mut crate::ExprAwait)
1471where
1472    V: VisitMut + ?Sized,
1473{
1474    v.visit_attributes_mut(&mut node.attrs);
1475    v.visit_expr_mut(&mut *node.base);
1476    skip!(node.dot_token);
1477    skip!(node.await_token);
1478}
1479#[cfg(any(feature = "derive", feature = "full"))]
1480#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1481pub fn visit_expr_binary_mut<V>(v: &mut V, node: &mut crate::ExprBinary)
1482where
1483    V: VisitMut + ?Sized,
1484{
1485    v.visit_attributes_mut(&mut node.attrs);
1486    v.visit_expr_mut(&mut *node.left);
1487    v.visit_bin_op_mut(&mut node.op);
1488    v.visit_expr_mut(&mut *node.right);
1489}
1490#[cfg(feature = "full")]
1491#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1492pub fn visit_expr_block_mut<V>(v: &mut V, node: &mut crate::ExprBlock)
1493where
1494    V: VisitMut + ?Sized,
1495{
1496    v.visit_attributes_mut(&mut node.attrs);
1497    if let Some(it) = &mut node.label {
1498        v.visit_label_mut(it);
1499    }
1500    v.visit_block_mut(&mut node.block);
1501}
1502#[cfg(feature = "full")]
1503#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1504pub fn visit_expr_break_mut<V>(v: &mut V, node: &mut crate::ExprBreak)
1505where
1506    V: VisitMut + ?Sized,
1507{
1508    v.visit_attributes_mut(&mut node.attrs);
1509    skip!(node.break_token);
1510    if let Some(it) = &mut node.label {
1511        v.visit_lifetime_mut(it);
1512    }
1513    if let Some(it) = &mut node.expr {
1514        v.visit_expr_mut(&mut **it);
1515    }
1516}
1517#[cfg(any(feature = "derive", feature = "full"))]
1518#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1519pub fn visit_expr_call_mut<V>(v: &mut V, node: &mut crate::ExprCall)
1520where
1521    V: VisitMut + ?Sized,
1522{
1523    v.visit_attributes_mut(&mut node.attrs);
1524    v.visit_expr_mut(&mut *node.func);
1525    skip!(node.paren_token);
1526    for mut el in Punctuated::pairs_mut(&mut node.args) {
1527        let it = el.value_mut();
1528        v.visit_expr_mut(it);
1529    }
1530}
1531#[cfg(any(feature = "derive", feature = "full"))]
1532#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1533pub fn visit_expr_cast_mut<V>(v: &mut V, node: &mut crate::ExprCast)
1534where
1535    V: VisitMut + ?Sized,
1536{
1537    v.visit_attributes_mut(&mut node.attrs);
1538    v.visit_expr_mut(&mut *node.expr);
1539    skip!(node.as_token);
1540    v.visit_type_mut(&mut *node.ty);
1541}
1542#[cfg(feature = "full")]
1543#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1544pub fn visit_expr_closure_mut<V>(v: &mut V, node: &mut crate::ExprClosure)
1545where
1546    V: VisitMut + ?Sized,
1547{
1548    v.visit_attributes_mut(&mut node.attrs);
1549    if let Some(it) = &mut node.lifetimes {
1550        v.visit_bound_lifetimes_mut(it);
1551    }
1552    skip!(node.constness);
1553    skip!(node.movability);
1554    skip!(node.asyncness);
1555    skip!(node.capture);
1556    skip!(node.or1_token);
1557    for mut el in Punctuated::pairs_mut(&mut node.inputs) {
1558        let it = el.value_mut();
1559        v.visit_pat_mut(it);
1560    }
1561    skip!(node.or2_token);
1562    v.visit_return_type_mut(&mut node.output);
1563    v.visit_expr_mut(&mut *node.body);
1564}
1565#[cfg(feature = "full")]
1566#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1567pub fn visit_expr_const_mut<V>(v: &mut V, node: &mut crate::ExprConst)
1568where
1569    V: VisitMut + ?Sized,
1570{
1571    v.visit_attributes_mut(&mut node.attrs);
1572    skip!(node.const_token);
1573    v.visit_block_mut(&mut node.block);
1574}
1575#[cfg(feature = "full")]
1576#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1577pub fn visit_expr_continue_mut<V>(v: &mut V, node: &mut crate::ExprContinue)
1578where
1579    V: VisitMut + ?Sized,
1580{
1581    v.visit_attributes_mut(&mut node.attrs);
1582    skip!(node.continue_token);
1583    if let Some(it) = &mut node.label {
1584        v.visit_lifetime_mut(it);
1585    }
1586}
1587#[cfg(any(feature = "derive", feature = "full"))]
1588#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1589pub fn visit_expr_field_mut<V>(v: &mut V, node: &mut crate::ExprField)
1590where
1591    V: VisitMut + ?Sized,
1592{
1593    v.visit_attributes_mut(&mut node.attrs);
1594    v.visit_expr_mut(&mut *node.base);
1595    skip!(node.dot_token);
1596    v.visit_member_mut(&mut node.member);
1597}
1598#[cfg(feature = "full")]
1599#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1600pub fn visit_expr_for_loop_mut<V>(v: &mut V, node: &mut crate::ExprForLoop)
1601where
1602    V: VisitMut + ?Sized,
1603{
1604    v.visit_attributes_mut(&mut node.attrs);
1605    if let Some(it) = &mut node.label {
1606        v.visit_label_mut(it);
1607    }
1608    skip!(node.for_token);
1609    v.visit_pat_mut(&mut *node.pat);
1610    skip!(node.in_token);
1611    v.visit_expr_mut(&mut *node.expr);
1612    v.visit_block_mut(&mut node.body);
1613}
1614#[cfg(any(feature = "derive", feature = "full"))]
1615#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1616pub fn visit_expr_group_mut<V>(v: &mut V, node: &mut crate::ExprGroup)
1617where
1618    V: VisitMut + ?Sized,
1619{
1620    v.visit_attributes_mut(&mut node.attrs);
1621    skip!(node.group_token);
1622    v.visit_expr_mut(&mut *node.expr);
1623}
1624#[cfg(feature = "full")]
1625#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1626pub fn visit_expr_if_mut<V>(v: &mut V, node: &mut crate::ExprIf)
1627where
1628    V: VisitMut + ?Sized,
1629{
1630    v.visit_attributes_mut(&mut node.attrs);
1631    skip!(node.if_token);
1632    v.visit_expr_mut(&mut *node.cond);
1633    v.visit_block_mut(&mut node.then_branch);
1634    if let Some(it) = &mut node.else_branch {
1635        skip!((it).0);
1636        v.visit_expr_mut(&mut *(it).1);
1637    }
1638}
1639#[cfg(any(feature = "derive", feature = "full"))]
1640#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1641pub fn visit_expr_index_mut<V>(v: &mut V, node: &mut crate::ExprIndex)
1642where
1643    V: VisitMut + ?Sized,
1644{
1645    v.visit_attributes_mut(&mut node.attrs);
1646    v.visit_expr_mut(&mut *node.expr);
1647    skip!(node.bracket_token);
1648    v.visit_expr_mut(&mut *node.index);
1649}
1650#[cfg(feature = "full")]
1651#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1652pub fn visit_expr_infer_mut<V>(v: &mut V, node: &mut crate::ExprInfer)
1653where
1654    V: VisitMut + ?Sized,
1655{
1656    v.visit_attributes_mut(&mut node.attrs);
1657    skip!(node.underscore_token);
1658}
1659#[cfg(feature = "full")]
1660#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1661pub fn visit_expr_let_mut<V>(v: &mut V, node: &mut crate::ExprLet)
1662where
1663    V: VisitMut + ?Sized,
1664{
1665    v.visit_attributes_mut(&mut node.attrs);
1666    skip!(node.let_token);
1667    v.visit_pat_mut(&mut *node.pat);
1668    skip!(node.eq_token);
1669    v.visit_expr_mut(&mut *node.expr);
1670}
1671#[cfg(any(feature = "derive", feature = "full"))]
1672#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1673pub fn visit_expr_lit_mut<V>(v: &mut V, node: &mut crate::ExprLit)
1674where
1675    V: VisitMut + ?Sized,
1676{
1677    v.visit_attributes_mut(&mut node.attrs);
1678    v.visit_lit_mut(&mut node.lit);
1679}
1680#[cfg(feature = "full")]
1681#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1682pub fn visit_expr_loop_mut<V>(v: &mut V, node: &mut crate::ExprLoop)
1683where
1684    V: VisitMut + ?Sized,
1685{
1686    v.visit_attributes_mut(&mut node.attrs);
1687    if let Some(it) = &mut node.label {
1688        v.visit_label_mut(it);
1689    }
1690    skip!(node.loop_token);
1691    v.visit_block_mut(&mut node.body);
1692}
1693#[cfg(any(feature = "derive", feature = "full"))]
1694#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1695pub fn visit_expr_macro_mut<V>(v: &mut V, node: &mut crate::ExprMacro)
1696where
1697    V: VisitMut + ?Sized,
1698{
1699    v.visit_attributes_mut(&mut node.attrs);
1700    v.visit_macro_mut(&mut node.mac);
1701}
1702#[cfg(feature = "full")]
1703#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1704pub fn visit_expr_match_mut<V>(v: &mut V, node: &mut crate::ExprMatch)
1705where
1706    V: VisitMut + ?Sized,
1707{
1708    v.visit_attributes_mut(&mut node.attrs);
1709    skip!(node.match_token);
1710    v.visit_expr_mut(&mut *node.expr);
1711    skip!(node.brace_token);
1712    for it in &mut node.arms {
1713        v.visit_arm_mut(it);
1714    }
1715}
1716#[cfg(any(feature = "derive", feature = "full"))]
1717#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1718pub fn visit_expr_method_call_mut<V>(v: &mut V, node: &mut crate::ExprMethodCall)
1719where
1720    V: VisitMut + ?Sized,
1721{
1722    v.visit_attributes_mut(&mut node.attrs);
1723    v.visit_expr_mut(&mut *node.receiver);
1724    skip!(node.dot_token);
1725    v.visit_ident_mut(&mut node.method);
1726    if let Some(it) = &mut node.turbofish {
1727        v.visit_angle_bracketed_generic_arguments_mut(it);
1728    }
1729    skip!(node.paren_token);
1730    for mut el in Punctuated::pairs_mut(&mut node.args) {
1731        let it = el.value_mut();
1732        v.visit_expr_mut(it);
1733    }
1734}
1735#[cfg(any(feature = "derive", feature = "full"))]
1736#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1737pub fn visit_expr_paren_mut<V>(v: &mut V, node: &mut crate::ExprParen)
1738where
1739    V: VisitMut + ?Sized,
1740{
1741    v.visit_attributes_mut(&mut node.attrs);
1742    skip!(node.paren_token);
1743    v.visit_expr_mut(&mut *node.expr);
1744}
1745#[cfg(any(feature = "derive", feature = "full"))]
1746#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1747pub fn visit_expr_path_mut<V>(v: &mut V, node: &mut crate::ExprPath)
1748where
1749    V: VisitMut + ?Sized,
1750{
1751    v.visit_attributes_mut(&mut node.attrs);
1752    if let Some(it) = &mut node.qself {
1753        v.visit_qself_mut(it);
1754    }
1755    v.visit_path_mut(&mut node.path);
1756}
1757#[cfg(feature = "full")]
1758#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1759pub fn visit_expr_range_mut<V>(v: &mut V, node: &mut crate::ExprRange)
1760where
1761    V: VisitMut + ?Sized,
1762{
1763    v.visit_attributes_mut(&mut node.attrs);
1764    if let Some(it) = &mut node.start {
1765        v.visit_expr_mut(&mut **it);
1766    }
1767    v.visit_range_limits_mut(&mut node.limits);
1768    if let Some(it) = &mut node.end {
1769        v.visit_expr_mut(&mut **it);
1770    }
1771}
1772#[cfg(feature = "full")]
1773#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1774pub fn visit_expr_raw_addr_mut<V>(v: &mut V, node: &mut crate::ExprRawAddr)
1775where
1776    V: VisitMut + ?Sized,
1777{
1778    v.visit_attributes_mut(&mut node.attrs);
1779    skip!(node.and_token);
1780    skip!(node.raw);
1781    v.visit_pointer_mutability_mut(&mut node.mutability);
1782    v.visit_expr_mut(&mut *node.expr);
1783}
1784#[cfg(any(feature = "derive", feature = "full"))]
1785#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1786pub fn visit_expr_reference_mut<V>(v: &mut V, node: &mut crate::ExprReference)
1787where
1788    V: VisitMut + ?Sized,
1789{
1790    v.visit_attributes_mut(&mut node.attrs);
1791    skip!(node.and_token);
1792    skip!(node.mutability);
1793    v.visit_expr_mut(&mut *node.expr);
1794}
1795#[cfg(feature = "full")]
1796#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1797pub fn visit_expr_repeat_mut<V>(v: &mut V, node: &mut crate::ExprRepeat)
1798where
1799    V: VisitMut + ?Sized,
1800{
1801    v.visit_attributes_mut(&mut node.attrs);
1802    skip!(node.bracket_token);
1803    v.visit_expr_mut(&mut *node.expr);
1804    skip!(node.semi_token);
1805    v.visit_expr_mut(&mut *node.len);
1806}
1807#[cfg(feature = "full")]
1808#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1809pub fn visit_expr_return_mut<V>(v: &mut V, node: &mut crate::ExprReturn)
1810where
1811    V: VisitMut + ?Sized,
1812{
1813    v.visit_attributes_mut(&mut node.attrs);
1814    skip!(node.return_token);
1815    if let Some(it) = &mut node.expr {
1816        v.visit_expr_mut(&mut **it);
1817    }
1818}
1819#[cfg(any(feature = "derive", feature = "full"))]
1820#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1821pub fn visit_expr_struct_mut<V>(v: &mut V, node: &mut crate::ExprStruct)
1822where
1823    V: VisitMut + ?Sized,
1824{
1825    v.visit_attributes_mut(&mut node.attrs);
1826    if let Some(it) = &mut node.qself {
1827        v.visit_qself_mut(it);
1828    }
1829    v.visit_path_mut(&mut node.path);
1830    skip!(node.brace_token);
1831    for mut el in Punctuated::pairs_mut(&mut node.fields) {
1832        let it = el.value_mut();
1833        v.visit_field_value_mut(it);
1834    }
1835    skip!(node.dot2_token);
1836    if let Some(it) = &mut node.rest {
1837        v.visit_expr_mut(&mut **it);
1838    }
1839}
1840#[cfg(feature = "full")]
1841#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1842pub fn visit_expr_try_mut<V>(v: &mut V, node: &mut crate::ExprTry)
1843where
1844    V: VisitMut + ?Sized,
1845{
1846    v.visit_attributes_mut(&mut node.attrs);
1847    v.visit_expr_mut(&mut *node.expr);
1848    skip!(node.question_token);
1849}
1850#[cfg(feature = "full")]
1851#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1852pub fn visit_expr_try_block_mut<V>(v: &mut V, node: &mut crate::ExprTryBlock)
1853where
1854    V: VisitMut + ?Sized,
1855{
1856    v.visit_attributes_mut(&mut node.attrs);
1857    skip!(node.try_token);
1858    v.visit_block_mut(&mut node.block);
1859}
1860#[cfg(any(feature = "derive", feature = "full"))]
1861#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1862pub fn visit_expr_tuple_mut<V>(v: &mut V, node: &mut crate::ExprTuple)
1863where
1864    V: VisitMut + ?Sized,
1865{
1866    v.visit_attributes_mut(&mut node.attrs);
1867    skip!(node.paren_token);
1868    for mut el in Punctuated::pairs_mut(&mut node.elems) {
1869        let it = el.value_mut();
1870        v.visit_expr_mut(it);
1871    }
1872}
1873#[cfg(any(feature = "derive", feature = "full"))]
1874#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1875pub fn visit_expr_unary_mut<V>(v: &mut V, node: &mut crate::ExprUnary)
1876where
1877    V: VisitMut + ?Sized,
1878{
1879    v.visit_attributes_mut(&mut node.attrs);
1880    v.visit_un_op_mut(&mut node.op);
1881    v.visit_expr_mut(&mut *node.expr);
1882}
1883#[cfg(feature = "full")]
1884#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1885pub fn visit_expr_unsafe_mut<V>(v: &mut V, node: &mut crate::ExprUnsafe)
1886where
1887    V: VisitMut + ?Sized,
1888{
1889    v.visit_attributes_mut(&mut node.attrs);
1890    skip!(node.unsafe_token);
1891    v.visit_block_mut(&mut node.block);
1892}
1893#[cfg(feature = "full")]
1894#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1895pub fn visit_expr_while_mut<V>(v: &mut V, node: &mut crate::ExprWhile)
1896where
1897    V: VisitMut + ?Sized,
1898{
1899    v.visit_attributes_mut(&mut node.attrs);
1900    if let Some(it) = &mut node.label {
1901        v.visit_label_mut(it);
1902    }
1903    skip!(node.while_token);
1904    v.visit_expr_mut(&mut *node.cond);
1905    v.visit_block_mut(&mut node.body);
1906}
1907#[cfg(feature = "full")]
1908#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1909pub fn visit_expr_yield_mut<V>(v: &mut V, node: &mut crate::ExprYield)
1910where
1911    V: VisitMut + ?Sized,
1912{
1913    v.visit_attributes_mut(&mut node.attrs);
1914    skip!(node.yield_token);
1915    if let Some(it) = &mut node.expr {
1916        v.visit_expr_mut(&mut **it);
1917    }
1918}
1919#[cfg(any(feature = "derive", feature = "full"))]
1920#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1921pub fn visit_field_mut<V>(v: &mut V, node: &mut crate::Field)
1922where
1923    V: VisitMut + ?Sized,
1924{
1925    v.visit_attributes_mut(&mut node.attrs);
1926    v.visit_visibility_mut(&mut node.vis);
1927    v.visit_field_mutability_mut(&mut node.mutability);
1928    if let Some(it) = &mut node.ident {
1929        v.visit_ident_mut(it);
1930    }
1931    skip!(node.colon_token);
1932    v.visit_type_mut(&mut node.ty);
1933}
1934#[cfg(any(feature = "derive", feature = "full"))]
1935#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1936pub fn visit_field_mutability_mut<V>(v: &mut V, node: &mut crate::FieldMutability)
1937where
1938    V: VisitMut + ?Sized,
1939{
1940    match node {
1941        crate::FieldMutability::None => {}
1942    }
1943}
1944#[cfg(feature = "full")]
1945#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
1946pub fn visit_field_pat_mut<V>(v: &mut V, node: &mut crate::FieldPat)
1947where
1948    V: VisitMut + ?Sized,
1949{
1950    v.visit_attributes_mut(&mut node.attrs);
1951    v.visit_member_mut(&mut node.member);
1952    skip!(node.colon_token);
1953    v.visit_pat_mut(&mut *node.pat);
1954}
1955#[cfg(any(feature = "derive", feature = "full"))]
1956#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1957pub fn visit_field_value_mut<V>(v: &mut V, node: &mut crate::FieldValue)
1958where
1959    V: VisitMut + ?Sized,
1960{
1961    v.visit_attributes_mut(&mut node.attrs);
1962    v.visit_member_mut(&mut node.member);
1963    skip!(node.colon_token);
1964    v.visit_expr_mut(&mut node.expr);
1965}
1966#[cfg(any(feature = "derive", feature = "full"))]
1967#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1968pub fn visit_fields_mut<V>(v: &mut V, node: &mut crate::Fields)
1969where
1970    V: VisitMut + ?Sized,
1971{
1972    match node {
1973        crate::Fields::Named(_binding_0) => {
1974            v.visit_fields_named_mut(_binding_0);
1975        }
1976        crate::Fields::Unnamed(_binding_0) => {
1977            v.visit_fields_unnamed_mut(_binding_0);
1978        }
1979        crate::Fields::Unit => {}
1980    }
1981}
1982#[cfg(any(feature = "derive", feature = "full"))]
1983#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1984pub fn visit_fields_named_mut<V>(v: &mut V, node: &mut crate::FieldsNamed)
1985where
1986    V: VisitMut + ?Sized,
1987{
1988    skip!(node.brace_token);
1989    for mut el in Punctuated::pairs_mut(&mut node.named) {
1990        let it = el.value_mut();
1991        v.visit_field_mut(it);
1992    }
1993}
1994#[cfg(any(feature = "derive", feature = "full"))]
1995#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
1996pub fn visit_fields_unnamed_mut<V>(v: &mut V, node: &mut crate::FieldsUnnamed)
1997where
1998    V: VisitMut + ?Sized,
1999{
2000    skip!(node.paren_token);
2001    for mut el in Punctuated::pairs_mut(&mut node.unnamed) {
2002        let it = el.value_mut();
2003        v.visit_field_mut(it);
2004    }
2005}
2006#[cfg(feature = "full")]
2007#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2008pub fn visit_file_mut<V>(v: &mut V, node: &mut crate::File)
2009where
2010    V: VisitMut + ?Sized,
2011{
2012    skip!(node.shebang);
2013    v.visit_attributes_mut(&mut node.attrs);
2014    for it in &mut node.items {
2015        v.visit_item_mut(it);
2016    }
2017}
2018#[cfg(feature = "full")]
2019#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2020pub fn visit_fn_arg_mut<V>(v: &mut V, node: &mut crate::FnArg)
2021where
2022    V: VisitMut + ?Sized,
2023{
2024    match node {
2025        crate::FnArg::Receiver(_binding_0) => {
2026            v.visit_receiver_mut(_binding_0);
2027        }
2028        crate::FnArg::Typed(_binding_0) => {
2029            v.visit_pat_type_mut(_binding_0);
2030        }
2031    }
2032}
2033#[cfg(feature = "full")]
2034#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2035pub fn visit_foreign_item_mut<V>(v: &mut V, node: &mut crate::ForeignItem)
2036where
2037    V: VisitMut + ?Sized,
2038{
2039    match node {
2040        crate::ForeignItem::Fn(_binding_0) => {
2041            v.visit_foreign_item_fn_mut(_binding_0);
2042        }
2043        crate::ForeignItem::Static(_binding_0) => {
2044            v.visit_foreign_item_static_mut(_binding_0);
2045        }
2046        crate::ForeignItem::Type(_binding_0) => {
2047            v.visit_foreign_item_type_mut(_binding_0);
2048        }
2049        crate::ForeignItem::Macro(_binding_0) => {
2050            v.visit_foreign_item_macro_mut(_binding_0);
2051        }
2052        crate::ForeignItem::Verbatim(_binding_0) => {
2053            v.visit_token_stream_mut(_binding_0);
2054        }
2055    }
2056}
2057#[cfg(feature = "full")]
2058#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2059pub fn visit_foreign_item_fn_mut<V>(v: &mut V, node: &mut crate::ForeignItemFn)
2060where
2061    V: VisitMut + ?Sized,
2062{
2063    v.visit_attributes_mut(&mut node.attrs);
2064    v.visit_visibility_mut(&mut node.vis);
2065    v.visit_signature_mut(&mut node.sig);
2066    skip!(node.semi_token);
2067}
2068#[cfg(feature = "full")]
2069#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2070pub fn visit_foreign_item_macro_mut<V>(v: &mut V, node: &mut crate::ForeignItemMacro)
2071where
2072    V: VisitMut + ?Sized,
2073{
2074    v.visit_attributes_mut(&mut node.attrs);
2075    v.visit_macro_mut(&mut node.mac);
2076    skip!(node.semi_token);
2077}
2078#[cfg(feature = "full")]
2079#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2080pub fn visit_foreign_item_static_mut<V>(v: &mut V, node: &mut crate::ForeignItemStatic)
2081where
2082    V: VisitMut + ?Sized,
2083{
2084    v.visit_attributes_mut(&mut node.attrs);
2085    v.visit_visibility_mut(&mut node.vis);
2086    skip!(node.static_token);
2087    v.visit_static_mutability_mut(&mut node.mutability);
2088    v.visit_ident_mut(&mut node.ident);
2089    skip!(node.colon_token);
2090    v.visit_type_mut(&mut *node.ty);
2091    skip!(node.semi_token);
2092}
2093#[cfg(feature = "full")]
2094#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2095pub fn visit_foreign_item_type_mut<V>(v: &mut V, node: &mut crate::ForeignItemType)
2096where
2097    V: VisitMut + ?Sized,
2098{
2099    v.visit_attributes_mut(&mut node.attrs);
2100    v.visit_visibility_mut(&mut node.vis);
2101    skip!(node.type_token);
2102    v.visit_ident_mut(&mut node.ident);
2103    v.visit_generics_mut(&mut node.generics);
2104    skip!(node.semi_token);
2105}
2106#[cfg(any(feature = "derive", feature = "full"))]
2107#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2108pub fn visit_generic_argument_mut<V>(v: &mut V, node: &mut crate::GenericArgument)
2109where
2110    V: VisitMut + ?Sized,
2111{
2112    match node {
2113        crate::GenericArgument::Lifetime(_binding_0) => {
2114            v.visit_lifetime_mut(_binding_0);
2115        }
2116        crate::GenericArgument::Type(_binding_0) => {
2117            v.visit_type_mut(_binding_0);
2118        }
2119        crate::GenericArgument::Const(_binding_0) => {
2120            v.visit_expr_mut(_binding_0);
2121        }
2122        crate::GenericArgument::AssocType(_binding_0) => {
2123            v.visit_assoc_type_mut(_binding_0);
2124        }
2125        crate::GenericArgument::AssocConst(_binding_0) => {
2126            v.visit_assoc_const_mut(_binding_0);
2127        }
2128        crate::GenericArgument::Constraint(_binding_0) => {
2129            v.visit_constraint_mut(_binding_0);
2130        }
2131    }
2132}
2133#[cfg(any(feature = "derive", feature = "full"))]
2134#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2135pub fn visit_generic_param_mut<V>(v: &mut V, node: &mut crate::GenericParam)
2136where
2137    V: VisitMut + ?Sized,
2138{
2139    match node {
2140        crate::GenericParam::Lifetime(_binding_0) => {
2141            v.visit_lifetime_param_mut(_binding_0);
2142        }
2143        crate::GenericParam::Type(_binding_0) => {
2144            v.visit_type_param_mut(_binding_0);
2145        }
2146        crate::GenericParam::Const(_binding_0) => {
2147            v.visit_const_param_mut(_binding_0);
2148        }
2149    }
2150}
2151#[cfg(any(feature = "derive", feature = "full"))]
2152#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2153pub fn visit_generics_mut<V>(v: &mut V, node: &mut crate::Generics)
2154where
2155    V: VisitMut + ?Sized,
2156{
2157    skip!(node.lt_token);
2158    for mut el in Punctuated::pairs_mut(&mut node.params) {
2159        let it = el.value_mut();
2160        v.visit_generic_param_mut(it);
2161    }
2162    skip!(node.gt_token);
2163    if let Some(it) = &mut node.where_clause {
2164        v.visit_where_clause_mut(it);
2165    }
2166}
2167pub fn visit_ident_mut<V>(v: &mut V, node: &mut proc_macro2::Ident)
2168where
2169    V: VisitMut + ?Sized,
2170{
2171    let mut span = node.span();
2172    v.visit_span_mut(&mut span);
2173    node.set_span(span);
2174}
2175#[cfg(feature = "full")]
2176#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2177pub fn visit_impl_item_mut<V>(v: &mut V, node: &mut crate::ImplItem)
2178where
2179    V: VisitMut + ?Sized,
2180{
2181    match node {
2182        crate::ImplItem::Const(_binding_0) => {
2183            v.visit_impl_item_const_mut(_binding_0);
2184        }
2185        crate::ImplItem::Fn(_binding_0) => {
2186            v.visit_impl_item_fn_mut(_binding_0);
2187        }
2188        crate::ImplItem::Type(_binding_0) => {
2189            v.visit_impl_item_type_mut(_binding_0);
2190        }
2191        crate::ImplItem::Macro(_binding_0) => {
2192            v.visit_impl_item_macro_mut(_binding_0);
2193        }
2194        crate::ImplItem::Verbatim(_binding_0) => {
2195            v.visit_token_stream_mut(_binding_0);
2196        }
2197    }
2198}
2199#[cfg(feature = "full")]
2200#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2201pub fn visit_impl_item_const_mut<V>(v: &mut V, node: &mut crate::ImplItemConst)
2202where
2203    V: VisitMut + ?Sized,
2204{
2205    v.visit_attributes_mut(&mut node.attrs);
2206    v.visit_visibility_mut(&mut node.vis);
2207    skip!(node.defaultness);
2208    skip!(node.const_token);
2209    v.visit_ident_mut(&mut node.ident);
2210    v.visit_generics_mut(&mut node.generics);
2211    skip!(node.colon_token);
2212    v.visit_type_mut(&mut node.ty);
2213    skip!(node.eq_token);
2214    v.visit_expr_mut(&mut node.expr);
2215    skip!(node.semi_token);
2216}
2217#[cfg(feature = "full")]
2218#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2219pub fn visit_impl_item_fn_mut<V>(v: &mut V, node: &mut crate::ImplItemFn)
2220where
2221    V: VisitMut + ?Sized,
2222{
2223    v.visit_attributes_mut(&mut node.attrs);
2224    v.visit_visibility_mut(&mut node.vis);
2225    skip!(node.defaultness);
2226    v.visit_signature_mut(&mut node.sig);
2227    v.visit_block_mut(&mut node.block);
2228}
2229#[cfg(feature = "full")]
2230#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2231pub fn visit_impl_item_macro_mut<V>(v: &mut V, node: &mut crate::ImplItemMacro)
2232where
2233    V: VisitMut + ?Sized,
2234{
2235    v.visit_attributes_mut(&mut node.attrs);
2236    v.visit_macro_mut(&mut node.mac);
2237    skip!(node.semi_token);
2238}
2239#[cfg(feature = "full")]
2240#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2241pub fn visit_impl_item_type_mut<V>(v: &mut V, node: &mut crate::ImplItemType)
2242where
2243    V: VisitMut + ?Sized,
2244{
2245    v.visit_attributes_mut(&mut node.attrs);
2246    v.visit_visibility_mut(&mut node.vis);
2247    skip!(node.defaultness);
2248    skip!(node.type_token);
2249    v.visit_ident_mut(&mut node.ident);
2250    v.visit_generics_mut(&mut node.generics);
2251    skip!(node.eq_token);
2252    v.visit_type_mut(&mut node.ty);
2253    skip!(node.semi_token);
2254}
2255#[cfg(feature = "full")]
2256#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2257pub fn visit_impl_restriction_mut<V>(v: &mut V, node: &mut crate::ImplRestriction)
2258where
2259    V: VisitMut + ?Sized,
2260{
2261    match *node {}
2262}
2263#[cfg(any(feature = "derive", feature = "full"))]
2264#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2265pub fn visit_index_mut<V>(v: &mut V, node: &mut crate::Index)
2266where
2267    V: VisitMut + ?Sized,
2268{
2269    skip!(node.index);
2270    v.visit_span_mut(&mut node.span);
2271}
2272#[cfg(feature = "full")]
2273#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2274pub fn visit_item_mut<V>(v: &mut V, node: &mut crate::Item)
2275where
2276    V: VisitMut + ?Sized,
2277{
2278    match node {
2279        crate::Item::Const(_binding_0) => {
2280            v.visit_item_const_mut(_binding_0);
2281        }
2282        crate::Item::Enum(_binding_0) => {
2283            v.visit_item_enum_mut(_binding_0);
2284        }
2285        crate::Item::ExternCrate(_binding_0) => {
2286            v.visit_item_extern_crate_mut(_binding_0);
2287        }
2288        crate::Item::Fn(_binding_0) => {
2289            v.visit_item_fn_mut(_binding_0);
2290        }
2291        crate::Item::ForeignMod(_binding_0) => {
2292            v.visit_item_foreign_mod_mut(_binding_0);
2293        }
2294        crate::Item::Impl(_binding_0) => {
2295            v.visit_item_impl_mut(_binding_0);
2296        }
2297        crate::Item::Macro(_binding_0) => {
2298            v.visit_item_macro_mut(_binding_0);
2299        }
2300        crate::Item::Mod(_binding_0) => {
2301            v.visit_item_mod_mut(_binding_0);
2302        }
2303        crate::Item::Static(_binding_0) => {
2304            v.visit_item_static_mut(_binding_0);
2305        }
2306        crate::Item::Struct(_binding_0) => {
2307            v.visit_item_struct_mut(_binding_0);
2308        }
2309        crate::Item::Trait(_binding_0) => {
2310            v.visit_item_trait_mut(_binding_0);
2311        }
2312        crate::Item::TraitAlias(_binding_0) => {
2313            v.visit_item_trait_alias_mut(_binding_0);
2314        }
2315        crate::Item::Type(_binding_0) => {
2316            v.visit_item_type_mut(_binding_0);
2317        }
2318        crate::Item::Union(_binding_0) => {
2319            v.visit_item_union_mut(_binding_0);
2320        }
2321        crate::Item::Use(_binding_0) => {
2322            v.visit_item_use_mut(_binding_0);
2323        }
2324        crate::Item::Verbatim(_binding_0) => {
2325            v.visit_token_stream_mut(_binding_0);
2326        }
2327    }
2328}
2329#[cfg(feature = "full")]
2330#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2331pub fn visit_item_const_mut<V>(v: &mut V, node: &mut crate::ItemConst)
2332where
2333    V: VisitMut + ?Sized,
2334{
2335    v.visit_attributes_mut(&mut node.attrs);
2336    v.visit_visibility_mut(&mut node.vis);
2337    skip!(node.const_token);
2338    v.visit_ident_mut(&mut node.ident);
2339    v.visit_generics_mut(&mut node.generics);
2340    skip!(node.colon_token);
2341    v.visit_type_mut(&mut *node.ty);
2342    skip!(node.eq_token);
2343    v.visit_expr_mut(&mut *node.expr);
2344    skip!(node.semi_token);
2345}
2346#[cfg(feature = "full")]
2347#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2348pub fn visit_item_enum_mut<V>(v: &mut V, node: &mut crate::ItemEnum)
2349where
2350    V: VisitMut + ?Sized,
2351{
2352    v.visit_attributes_mut(&mut node.attrs);
2353    v.visit_visibility_mut(&mut node.vis);
2354    skip!(node.enum_token);
2355    v.visit_ident_mut(&mut node.ident);
2356    v.visit_generics_mut(&mut node.generics);
2357    skip!(node.brace_token);
2358    for mut el in Punctuated::pairs_mut(&mut node.variants) {
2359        let it = el.value_mut();
2360        v.visit_variant_mut(it);
2361    }
2362}
2363#[cfg(feature = "full")]
2364#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2365pub fn visit_item_extern_crate_mut<V>(v: &mut V, node: &mut crate::ItemExternCrate)
2366where
2367    V: VisitMut + ?Sized,
2368{
2369    v.visit_attributes_mut(&mut node.attrs);
2370    v.visit_visibility_mut(&mut node.vis);
2371    skip!(node.extern_token);
2372    skip!(node.crate_token);
2373    v.visit_ident_mut(&mut node.ident);
2374    if let Some(it) = &mut node.rename {
2375        skip!((it).0);
2376        v.visit_ident_mut(&mut (it).1);
2377    }
2378    skip!(node.semi_token);
2379}
2380#[cfg(feature = "full")]
2381#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2382pub fn visit_item_fn_mut<V>(v: &mut V, node: &mut crate::ItemFn)
2383where
2384    V: VisitMut + ?Sized,
2385{
2386    v.visit_attributes_mut(&mut node.attrs);
2387    v.visit_visibility_mut(&mut node.vis);
2388    v.visit_signature_mut(&mut node.sig);
2389    v.visit_block_mut(&mut *node.block);
2390}
2391#[cfg(feature = "full")]
2392#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2393pub fn visit_item_foreign_mod_mut<V>(v: &mut V, node: &mut crate::ItemForeignMod)
2394where
2395    V: VisitMut + ?Sized,
2396{
2397    v.visit_attributes_mut(&mut node.attrs);
2398    skip!(node.unsafety);
2399    v.visit_abi_mut(&mut node.abi);
2400    skip!(node.brace_token);
2401    for it in &mut node.items {
2402        v.visit_foreign_item_mut(it);
2403    }
2404}
2405#[cfg(feature = "full")]
2406#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2407pub fn visit_item_impl_mut<V>(v: &mut V, node: &mut crate::ItemImpl)
2408where
2409    V: VisitMut + ?Sized,
2410{
2411    v.visit_attributes_mut(&mut node.attrs);
2412    skip!(node.defaultness);
2413    skip!(node.unsafety);
2414    skip!(node.impl_token);
2415    v.visit_generics_mut(&mut node.generics);
2416    if let Some(it) = &mut node.trait_ {
2417        skip!((it).0);
2418        v.visit_path_mut(&mut (it).1);
2419        skip!((it).2);
2420    }
2421    v.visit_type_mut(&mut *node.self_ty);
2422    skip!(node.brace_token);
2423    for it in &mut node.items {
2424        v.visit_impl_item_mut(it);
2425    }
2426}
2427#[cfg(feature = "full")]
2428#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2429pub fn visit_item_macro_mut<V>(v: &mut V, node: &mut crate::ItemMacro)
2430where
2431    V: VisitMut + ?Sized,
2432{
2433    v.visit_attributes_mut(&mut node.attrs);
2434    if let Some(it) = &mut node.ident {
2435        v.visit_ident_mut(it);
2436    }
2437    v.visit_macro_mut(&mut node.mac);
2438    skip!(node.semi_token);
2439}
2440#[cfg(feature = "full")]
2441#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2442pub fn visit_item_mod_mut<V>(v: &mut V, node: &mut crate::ItemMod)
2443where
2444    V: VisitMut + ?Sized,
2445{
2446    v.visit_attributes_mut(&mut node.attrs);
2447    v.visit_visibility_mut(&mut node.vis);
2448    skip!(node.unsafety);
2449    skip!(node.mod_token);
2450    v.visit_ident_mut(&mut node.ident);
2451    if let Some(it) = &mut node.content {
2452        skip!((it).0);
2453        for it in &mut (it).1 {
2454            v.visit_item_mut(it);
2455        }
2456    }
2457    skip!(node.semi);
2458}
2459#[cfg(feature = "full")]
2460#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2461pub fn visit_item_static_mut<V>(v: &mut V, node: &mut crate::ItemStatic)
2462where
2463    V: VisitMut + ?Sized,
2464{
2465    v.visit_attributes_mut(&mut node.attrs);
2466    v.visit_visibility_mut(&mut node.vis);
2467    skip!(node.static_token);
2468    v.visit_static_mutability_mut(&mut node.mutability);
2469    v.visit_ident_mut(&mut node.ident);
2470    skip!(node.colon_token);
2471    v.visit_type_mut(&mut *node.ty);
2472    skip!(node.eq_token);
2473    v.visit_expr_mut(&mut *node.expr);
2474    skip!(node.semi_token);
2475}
2476#[cfg(feature = "full")]
2477#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2478pub fn visit_item_struct_mut<V>(v: &mut V, node: &mut crate::ItemStruct)
2479where
2480    V: VisitMut + ?Sized,
2481{
2482    v.visit_attributes_mut(&mut node.attrs);
2483    v.visit_visibility_mut(&mut node.vis);
2484    skip!(node.struct_token);
2485    v.visit_ident_mut(&mut node.ident);
2486    v.visit_generics_mut(&mut node.generics);
2487    v.visit_fields_mut(&mut node.fields);
2488    skip!(node.semi_token);
2489}
2490#[cfg(feature = "full")]
2491#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2492pub fn visit_item_trait_mut<V>(v: &mut V, node: &mut crate::ItemTrait)
2493where
2494    V: VisitMut + ?Sized,
2495{
2496    v.visit_attributes_mut(&mut node.attrs);
2497    v.visit_visibility_mut(&mut node.vis);
2498    skip!(node.unsafety);
2499    skip!(node.auto_token);
2500    if let Some(it) = &mut node.restriction {
2501        v.visit_impl_restriction_mut(it);
2502    }
2503    skip!(node.trait_token);
2504    v.visit_ident_mut(&mut node.ident);
2505    v.visit_generics_mut(&mut node.generics);
2506    skip!(node.colon_token);
2507    for mut el in Punctuated::pairs_mut(&mut node.supertraits) {
2508        let it = el.value_mut();
2509        v.visit_type_param_bound_mut(it);
2510    }
2511    skip!(node.brace_token);
2512    for it in &mut node.items {
2513        v.visit_trait_item_mut(it);
2514    }
2515}
2516#[cfg(feature = "full")]
2517#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2518pub fn visit_item_trait_alias_mut<V>(v: &mut V, node: &mut crate::ItemTraitAlias)
2519where
2520    V: VisitMut + ?Sized,
2521{
2522    v.visit_attributes_mut(&mut node.attrs);
2523    v.visit_visibility_mut(&mut node.vis);
2524    skip!(node.trait_token);
2525    v.visit_ident_mut(&mut node.ident);
2526    v.visit_generics_mut(&mut node.generics);
2527    skip!(node.eq_token);
2528    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
2529        let it = el.value_mut();
2530        v.visit_type_param_bound_mut(it);
2531    }
2532    skip!(node.semi_token);
2533}
2534#[cfg(feature = "full")]
2535#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2536pub fn visit_item_type_mut<V>(v: &mut V, node: &mut crate::ItemType)
2537where
2538    V: VisitMut + ?Sized,
2539{
2540    v.visit_attributes_mut(&mut node.attrs);
2541    v.visit_visibility_mut(&mut node.vis);
2542    skip!(node.type_token);
2543    v.visit_ident_mut(&mut node.ident);
2544    v.visit_generics_mut(&mut node.generics);
2545    skip!(node.eq_token);
2546    v.visit_type_mut(&mut *node.ty);
2547    skip!(node.semi_token);
2548}
2549#[cfg(feature = "full")]
2550#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2551pub fn visit_item_union_mut<V>(v: &mut V, node: &mut crate::ItemUnion)
2552where
2553    V: VisitMut + ?Sized,
2554{
2555    v.visit_attributes_mut(&mut node.attrs);
2556    v.visit_visibility_mut(&mut node.vis);
2557    skip!(node.union_token);
2558    v.visit_ident_mut(&mut node.ident);
2559    v.visit_generics_mut(&mut node.generics);
2560    v.visit_fields_named_mut(&mut node.fields);
2561}
2562#[cfg(feature = "full")]
2563#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2564pub fn visit_item_use_mut<V>(v: &mut V, node: &mut crate::ItemUse)
2565where
2566    V: VisitMut + ?Sized,
2567{
2568    v.visit_attributes_mut(&mut node.attrs);
2569    v.visit_visibility_mut(&mut node.vis);
2570    skip!(node.use_token);
2571    skip!(node.leading_colon);
2572    v.visit_use_tree_mut(&mut node.tree);
2573    skip!(node.semi_token);
2574}
2575#[cfg(feature = "full")]
2576#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2577pub fn visit_label_mut<V>(v: &mut V, node: &mut crate::Label)
2578where
2579    V: VisitMut + ?Sized,
2580{
2581    v.visit_lifetime_mut(&mut node.name);
2582    skip!(node.colon_token);
2583}
2584pub fn visit_lifetime_mut<V>(v: &mut V, node: &mut crate::Lifetime)
2585where
2586    V: VisitMut + ?Sized,
2587{
2588    v.visit_span_mut(&mut node.apostrophe);
2589    v.visit_ident_mut(&mut node.ident);
2590}
2591#[cfg(any(feature = "derive", feature = "full"))]
2592#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2593pub fn visit_lifetime_param_mut<V>(v: &mut V, node: &mut crate::LifetimeParam)
2594where
2595    V: VisitMut + ?Sized,
2596{
2597    v.visit_attributes_mut(&mut node.attrs);
2598    v.visit_lifetime_mut(&mut node.lifetime);
2599    skip!(node.colon_token);
2600    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
2601        let it = el.value_mut();
2602        v.visit_lifetime_mut(it);
2603    }
2604}
2605pub fn visit_lit_mut<V>(v: &mut V, node: &mut crate::Lit)
2606where
2607    V: VisitMut + ?Sized,
2608{
2609    match node {
2610        crate::Lit::Str(_binding_0) => {
2611            v.visit_lit_str_mut(_binding_0);
2612        }
2613        crate::Lit::ByteStr(_binding_0) => {
2614            v.visit_lit_byte_str_mut(_binding_0);
2615        }
2616        crate::Lit::CStr(_binding_0) => {
2617            v.visit_lit_cstr_mut(_binding_0);
2618        }
2619        crate::Lit::Byte(_binding_0) => {
2620            v.visit_lit_byte_mut(_binding_0);
2621        }
2622        crate::Lit::Char(_binding_0) => {
2623            v.visit_lit_char_mut(_binding_0);
2624        }
2625        crate::Lit::Int(_binding_0) => {
2626            v.visit_lit_int_mut(_binding_0);
2627        }
2628        crate::Lit::Float(_binding_0) => {
2629            v.visit_lit_float_mut(_binding_0);
2630        }
2631        crate::Lit::Bool(_binding_0) => {
2632            v.visit_lit_bool_mut(_binding_0);
2633        }
2634        crate::Lit::Verbatim(_binding_0) => {
2635            skip!(_binding_0);
2636        }
2637    }
2638}
2639pub fn visit_lit_bool_mut<V>(v: &mut V, node: &mut crate::LitBool)
2640where
2641    V: VisitMut + ?Sized,
2642{
2643    skip!(node.value);
2644    v.visit_span_mut(&mut node.span);
2645}
2646pub fn visit_lit_byte_mut<V>(v: &mut V, node: &mut crate::LitByte)
2647where
2648    V: VisitMut + ?Sized,
2649{}
2650pub fn visit_lit_byte_str_mut<V>(v: &mut V, node: &mut crate::LitByteStr)
2651where
2652    V: VisitMut + ?Sized,
2653{}
2654pub fn visit_lit_cstr_mut<V>(v: &mut V, node: &mut crate::LitCStr)
2655where
2656    V: VisitMut + ?Sized,
2657{}
2658pub fn visit_lit_char_mut<V>(v: &mut V, node: &mut crate::LitChar)
2659where
2660    V: VisitMut + ?Sized,
2661{}
2662pub fn visit_lit_float_mut<V>(v: &mut V, node: &mut crate::LitFloat)
2663where
2664    V: VisitMut + ?Sized,
2665{}
2666pub fn visit_lit_int_mut<V>(v: &mut V, node: &mut crate::LitInt)
2667where
2668    V: VisitMut + ?Sized,
2669{}
2670pub fn visit_lit_str_mut<V>(v: &mut V, node: &mut crate::LitStr)
2671where
2672    V: VisitMut + ?Sized,
2673{}
2674#[cfg(feature = "full")]
2675#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2676pub fn visit_local_mut<V>(v: &mut V, node: &mut crate::Local)
2677where
2678    V: VisitMut + ?Sized,
2679{
2680    v.visit_attributes_mut(&mut node.attrs);
2681    skip!(node.let_token);
2682    v.visit_pat_mut(&mut node.pat);
2683    if let Some(it) = &mut node.init {
2684        v.visit_local_init_mut(it);
2685    }
2686    skip!(node.semi_token);
2687}
2688#[cfg(feature = "full")]
2689#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2690pub fn visit_local_init_mut<V>(v: &mut V, node: &mut crate::LocalInit)
2691where
2692    V: VisitMut + ?Sized,
2693{
2694    skip!(node.eq_token);
2695    v.visit_expr_mut(&mut *node.expr);
2696    if let Some(it) = &mut node.diverge {
2697        skip!((it).0);
2698        v.visit_expr_mut(&mut *(it).1);
2699    }
2700}
2701#[cfg(any(feature = "derive", feature = "full"))]
2702#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2703pub fn visit_macro_mut<V>(v: &mut V, node: &mut crate::Macro)
2704where
2705    V: VisitMut + ?Sized,
2706{
2707    v.visit_path_mut(&mut node.path);
2708    skip!(node.bang_token);
2709    v.visit_macro_delimiter_mut(&mut node.delimiter);
2710    v.visit_token_stream_mut(&mut node.tokens);
2711}
2712#[cfg(any(feature = "derive", feature = "full"))]
2713#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2714pub fn visit_macro_delimiter_mut<V>(v: &mut V, node: &mut crate::MacroDelimiter)
2715where
2716    V: VisitMut + ?Sized,
2717{
2718    match node {
2719        crate::MacroDelimiter::Paren(_binding_0) => {
2720            skip!(_binding_0);
2721        }
2722        crate::MacroDelimiter::Brace(_binding_0) => {
2723            skip!(_binding_0);
2724        }
2725        crate::MacroDelimiter::Bracket(_binding_0) => {
2726            skip!(_binding_0);
2727        }
2728    }
2729}
2730#[cfg(any(feature = "derive", feature = "full"))]
2731#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2732pub fn visit_member_mut<V>(v: &mut V, node: &mut crate::Member)
2733where
2734    V: VisitMut + ?Sized,
2735{
2736    match node {
2737        crate::Member::Named(_binding_0) => {
2738            v.visit_ident_mut(_binding_0);
2739        }
2740        crate::Member::Unnamed(_binding_0) => {
2741            v.visit_index_mut(_binding_0);
2742        }
2743    }
2744}
2745#[cfg(any(feature = "derive", feature = "full"))]
2746#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2747pub fn visit_meta_mut<V>(v: &mut V, node: &mut crate::Meta)
2748where
2749    V: VisitMut + ?Sized,
2750{
2751    match node {
2752        crate::Meta::Path(_binding_0) => {
2753            v.visit_path_mut(_binding_0);
2754        }
2755        crate::Meta::List(_binding_0) => {
2756            v.visit_meta_list_mut(_binding_0);
2757        }
2758        crate::Meta::NameValue(_binding_0) => {
2759            v.visit_meta_name_value_mut(_binding_0);
2760        }
2761    }
2762}
2763#[cfg(any(feature = "derive", feature = "full"))]
2764#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2765pub fn visit_meta_list_mut<V>(v: &mut V, node: &mut crate::MetaList)
2766where
2767    V: VisitMut + ?Sized,
2768{
2769    v.visit_path_mut(&mut node.path);
2770    v.visit_macro_delimiter_mut(&mut node.delimiter);
2771    v.visit_token_stream_mut(&mut node.tokens);
2772}
2773#[cfg(any(feature = "derive", feature = "full"))]
2774#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2775pub fn visit_meta_name_value_mut<V>(v: &mut V, node: &mut crate::MetaNameValue)
2776where
2777    V: VisitMut + ?Sized,
2778{
2779    v.visit_path_mut(&mut node.path);
2780    skip!(node.eq_token);
2781    v.visit_expr_mut(&mut node.value);
2782}
2783#[cfg(any(feature = "derive", feature = "full"))]
2784#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
2785pub fn visit_parenthesized_generic_arguments_mut<V>(
2786    v: &mut V,
2787    node: &mut crate::ParenthesizedGenericArguments,
2788)
2789where
2790    V: VisitMut + ?Sized,
2791{
2792    skip!(node.paren_token);
2793    for mut el in Punctuated::pairs_mut(&mut node.inputs) {
2794        let it = el.value_mut();
2795        v.visit_type_mut(it);
2796    }
2797    v.visit_return_type_mut(&mut node.output);
2798}
2799#[cfg(feature = "full")]
2800#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2801pub fn visit_pat_mut<V>(v: &mut V, node: &mut crate::Pat)
2802where
2803    V: VisitMut + ?Sized,
2804{
2805    match node {
2806        crate::Pat::Const(_binding_0) => {
2807            v.visit_expr_const_mut(_binding_0);
2808        }
2809        crate::Pat::Ident(_binding_0) => {
2810            v.visit_pat_ident_mut(_binding_0);
2811        }
2812        crate::Pat::Lit(_binding_0) => {
2813            v.visit_expr_lit_mut(_binding_0);
2814        }
2815        crate::Pat::Macro(_binding_0) => {
2816            v.visit_expr_macro_mut(_binding_0);
2817        }
2818        crate::Pat::Or(_binding_0) => {
2819            v.visit_pat_or_mut(_binding_0);
2820        }
2821        crate::Pat::Paren(_binding_0) => {
2822            v.visit_pat_paren_mut(_binding_0);
2823        }
2824        crate::Pat::Path(_binding_0) => {
2825            v.visit_expr_path_mut(_binding_0);
2826        }
2827        crate::Pat::Range(_binding_0) => {
2828            v.visit_expr_range_mut(_binding_0);
2829        }
2830        crate::Pat::Reference(_binding_0) => {
2831            v.visit_pat_reference_mut(_binding_0);
2832        }
2833        crate::Pat::Rest(_binding_0) => {
2834            v.visit_pat_rest_mut(_binding_0);
2835        }
2836        crate::Pat::Slice(_binding_0) => {
2837            v.visit_pat_slice_mut(_binding_0);
2838        }
2839        crate::Pat::Struct(_binding_0) => {
2840            v.visit_pat_struct_mut(_binding_0);
2841        }
2842        crate::Pat::Tuple(_binding_0) => {
2843            v.visit_pat_tuple_mut(_binding_0);
2844        }
2845        crate::Pat::TupleStruct(_binding_0) => {
2846            v.visit_pat_tuple_struct_mut(_binding_0);
2847        }
2848        crate::Pat::Type(_binding_0) => {
2849            v.visit_pat_type_mut(_binding_0);
2850        }
2851        crate::Pat::Verbatim(_binding_0) => {
2852            v.visit_token_stream_mut(_binding_0);
2853        }
2854        crate::Pat::Wild(_binding_0) => {
2855            v.visit_pat_wild_mut(_binding_0);
2856        }
2857    }
2858}
2859#[cfg(feature = "full")]
2860#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2861pub fn visit_pat_ident_mut<V>(v: &mut V, node: &mut crate::PatIdent)
2862where
2863    V: VisitMut + ?Sized,
2864{
2865    v.visit_attributes_mut(&mut node.attrs);
2866    skip!(node.by_ref);
2867    skip!(node.mutability);
2868    v.visit_ident_mut(&mut node.ident);
2869    if let Some(it) = &mut node.subpat {
2870        skip!((it).0);
2871        v.visit_pat_mut(&mut *(it).1);
2872    }
2873}
2874#[cfg(feature = "full")]
2875#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2876pub fn visit_pat_or_mut<V>(v: &mut V, node: &mut crate::PatOr)
2877where
2878    V: VisitMut + ?Sized,
2879{
2880    v.visit_attributes_mut(&mut node.attrs);
2881    skip!(node.leading_vert);
2882    for mut el in Punctuated::pairs_mut(&mut node.cases) {
2883        let it = el.value_mut();
2884        v.visit_pat_mut(it);
2885    }
2886}
2887#[cfg(feature = "full")]
2888#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2889pub fn visit_pat_paren_mut<V>(v: &mut V, node: &mut crate::PatParen)
2890where
2891    V: VisitMut + ?Sized,
2892{
2893    v.visit_attributes_mut(&mut node.attrs);
2894    skip!(node.paren_token);
2895    v.visit_pat_mut(&mut *node.pat);
2896}
2897#[cfg(feature = "full")]
2898#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2899pub fn visit_pat_reference_mut<V>(v: &mut V, node: &mut crate::PatReference)
2900where
2901    V: VisitMut + ?Sized,
2902{
2903    v.visit_attributes_mut(&mut node.attrs);
2904    skip!(node.and_token);
2905    skip!(node.mutability);
2906    v.visit_pat_mut(&mut *node.pat);
2907}
2908#[cfg(feature = "full")]
2909#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2910pub fn visit_pat_rest_mut<V>(v: &mut V, node: &mut crate::PatRest)
2911where
2912    V: VisitMut + ?Sized,
2913{
2914    v.visit_attributes_mut(&mut node.attrs);
2915    skip!(node.dot2_token);
2916}
2917#[cfg(feature = "full")]
2918#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2919pub fn visit_pat_slice_mut<V>(v: &mut V, node: &mut crate::PatSlice)
2920where
2921    V: VisitMut + ?Sized,
2922{
2923    v.visit_attributes_mut(&mut node.attrs);
2924    skip!(node.bracket_token);
2925    for mut el in Punctuated::pairs_mut(&mut node.elems) {
2926        let it = el.value_mut();
2927        v.visit_pat_mut(it);
2928    }
2929}
2930#[cfg(feature = "full")]
2931#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2932pub fn visit_pat_struct_mut<V>(v: &mut V, node: &mut crate::PatStruct)
2933where
2934    V: VisitMut + ?Sized,
2935{
2936    v.visit_attributes_mut(&mut node.attrs);
2937    if let Some(it) = &mut node.qself {
2938        v.visit_qself_mut(it);
2939    }
2940    v.visit_path_mut(&mut node.path);
2941    skip!(node.brace_token);
2942    for mut el in Punctuated::pairs_mut(&mut node.fields) {
2943        let it = el.value_mut();
2944        v.visit_field_pat_mut(it);
2945    }
2946    if let Some(it) = &mut node.rest {
2947        v.visit_pat_rest_mut(it);
2948    }
2949}
2950#[cfg(feature = "full")]
2951#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2952pub fn visit_pat_tuple_mut<V>(v: &mut V, node: &mut crate::PatTuple)
2953where
2954    V: VisitMut + ?Sized,
2955{
2956    v.visit_attributes_mut(&mut node.attrs);
2957    skip!(node.paren_token);
2958    for mut el in Punctuated::pairs_mut(&mut node.elems) {
2959        let it = el.value_mut();
2960        v.visit_pat_mut(it);
2961    }
2962}
2963#[cfg(feature = "full")]
2964#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2965pub fn visit_pat_tuple_struct_mut<V>(v: &mut V, node: &mut crate::PatTupleStruct)
2966where
2967    V: VisitMut + ?Sized,
2968{
2969    v.visit_attributes_mut(&mut node.attrs);
2970    if let Some(it) = &mut node.qself {
2971        v.visit_qself_mut(it);
2972    }
2973    v.visit_path_mut(&mut node.path);
2974    skip!(node.paren_token);
2975    for mut el in Punctuated::pairs_mut(&mut node.elems) {
2976        let it = el.value_mut();
2977        v.visit_pat_mut(it);
2978    }
2979}
2980#[cfg(feature = "full")]
2981#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2982pub fn visit_pat_type_mut<V>(v: &mut V, node: &mut crate::PatType)
2983where
2984    V: VisitMut + ?Sized,
2985{
2986    v.visit_attributes_mut(&mut node.attrs);
2987    v.visit_pat_mut(&mut *node.pat);
2988    skip!(node.colon_token);
2989    v.visit_type_mut(&mut *node.ty);
2990}
2991#[cfg(feature = "full")]
2992#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
2993pub fn visit_pat_wild_mut<V>(v: &mut V, node: &mut crate::PatWild)
2994where
2995    V: VisitMut + ?Sized,
2996{
2997    v.visit_attributes_mut(&mut node.attrs);
2998    skip!(node.underscore_token);
2999}
3000#[cfg(any(feature = "derive", feature = "full"))]
3001#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3002pub fn visit_path_mut<V>(v: &mut V, node: &mut crate::Path)
3003where
3004    V: VisitMut + ?Sized,
3005{
3006    skip!(node.leading_colon);
3007    for mut el in Punctuated::pairs_mut(&mut node.segments) {
3008        let it = el.value_mut();
3009        v.visit_path_segment_mut(it);
3010    }
3011}
3012#[cfg(any(feature = "derive", feature = "full"))]
3013#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3014pub fn visit_path_arguments_mut<V>(v: &mut V, node: &mut crate::PathArguments)
3015where
3016    V: VisitMut + ?Sized,
3017{
3018    match node {
3019        crate::PathArguments::None => {}
3020        crate::PathArguments::AngleBracketed(_binding_0) => {
3021            v.visit_angle_bracketed_generic_arguments_mut(_binding_0);
3022        }
3023        crate::PathArguments::Parenthesized(_binding_0) => {
3024            v.visit_parenthesized_generic_arguments_mut(_binding_0);
3025        }
3026    }
3027}
3028#[cfg(any(feature = "derive", feature = "full"))]
3029#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3030pub fn visit_path_segment_mut<V>(v: &mut V, node: &mut crate::PathSegment)
3031where
3032    V: VisitMut + ?Sized,
3033{
3034    v.visit_ident_mut(&mut node.ident);
3035    v.visit_path_arguments_mut(&mut node.arguments);
3036}
3037#[cfg(feature = "full")]
3038#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3039pub fn visit_pointer_mutability_mut<V>(v: &mut V, node: &mut crate::PointerMutability)
3040where
3041    V: VisitMut + ?Sized,
3042{
3043    match node {
3044        crate::PointerMutability::Const(_binding_0) => {
3045            skip!(_binding_0);
3046        }
3047        crate::PointerMutability::Mut(_binding_0) => {
3048            skip!(_binding_0);
3049        }
3050    }
3051}
3052#[cfg(feature = "full")]
3053#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3054pub fn visit_precise_capture_mut<V>(v: &mut V, node: &mut crate::PreciseCapture)
3055where
3056    V: VisitMut + ?Sized,
3057{
3058    skip!(node.use_token);
3059    skip!(node.lt_token);
3060    for mut el in Punctuated::pairs_mut(&mut node.params) {
3061        let it = el.value_mut();
3062        v.visit_captured_param_mut(it);
3063    }
3064    skip!(node.gt_token);
3065}
3066#[cfg(any(feature = "derive", feature = "full"))]
3067#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3068pub fn visit_predicate_lifetime_mut<V>(v: &mut V, node: &mut crate::PredicateLifetime)
3069where
3070    V: VisitMut + ?Sized,
3071{
3072    v.visit_lifetime_mut(&mut node.lifetime);
3073    skip!(node.colon_token);
3074    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
3075        let it = el.value_mut();
3076        v.visit_lifetime_mut(it);
3077    }
3078}
3079#[cfg(any(feature = "derive", feature = "full"))]
3080#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3081pub fn visit_predicate_type_mut<V>(v: &mut V, node: &mut crate::PredicateType)
3082where
3083    V: VisitMut + ?Sized,
3084{
3085    if let Some(it) = &mut node.lifetimes {
3086        v.visit_bound_lifetimes_mut(it);
3087    }
3088    v.visit_type_mut(&mut node.bounded_ty);
3089    skip!(node.colon_token);
3090    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
3091        let it = el.value_mut();
3092        v.visit_type_param_bound_mut(it);
3093    }
3094}
3095#[cfg(any(feature = "derive", feature = "full"))]
3096#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3097pub fn visit_qself_mut<V>(v: &mut V, node: &mut crate::QSelf)
3098where
3099    V: VisitMut + ?Sized,
3100{
3101    skip!(node.lt_token);
3102    v.visit_type_mut(&mut *node.ty);
3103    skip!(node.position);
3104    skip!(node.as_token);
3105    skip!(node.gt_token);
3106}
3107#[cfg(feature = "full")]
3108#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3109pub fn visit_range_limits_mut<V>(v: &mut V, node: &mut crate::RangeLimits)
3110where
3111    V: VisitMut + ?Sized,
3112{
3113    match node {
3114        crate::RangeLimits::HalfOpen(_binding_0) => {
3115            skip!(_binding_0);
3116        }
3117        crate::RangeLimits::Closed(_binding_0) => {
3118            skip!(_binding_0);
3119        }
3120    }
3121}
3122#[cfg(feature = "full")]
3123#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3124pub fn visit_receiver_mut<V>(v: &mut V, node: &mut crate::Receiver)
3125where
3126    V: VisitMut + ?Sized,
3127{
3128    v.visit_attributes_mut(&mut node.attrs);
3129    if let Some(it) = &mut node.reference {
3130        skip!((it).0);
3131        if let Some(it) = &mut (it).1 {
3132            v.visit_lifetime_mut(it);
3133        }
3134    }
3135    skip!(node.mutability);
3136    skip!(node.self_token);
3137    skip!(node.colon_token);
3138    v.visit_type_mut(&mut *node.ty);
3139}
3140#[cfg(any(feature = "derive", feature = "full"))]
3141#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3142pub fn visit_return_type_mut<V>(v: &mut V, node: &mut crate::ReturnType)
3143where
3144    V: VisitMut + ?Sized,
3145{
3146    match node {
3147        crate::ReturnType::Default => {}
3148        crate::ReturnType::Type(_binding_0, _binding_1) => {
3149            skip!(_binding_0);
3150            v.visit_type_mut(&mut **_binding_1);
3151        }
3152    }
3153}
3154#[cfg(feature = "full")]
3155#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3156pub fn visit_signature_mut<V>(v: &mut V, node: &mut crate::Signature)
3157where
3158    V: VisitMut + ?Sized,
3159{
3160    skip!(node.constness);
3161    skip!(node.asyncness);
3162    skip!(node.unsafety);
3163    if let Some(it) = &mut node.abi {
3164        v.visit_abi_mut(it);
3165    }
3166    skip!(node.fn_token);
3167    v.visit_ident_mut(&mut node.ident);
3168    v.visit_generics_mut(&mut node.generics);
3169    skip!(node.paren_token);
3170    for mut el in Punctuated::pairs_mut(&mut node.inputs) {
3171        let it = el.value_mut();
3172        v.visit_fn_arg_mut(it);
3173    }
3174    if let Some(it) = &mut node.variadic {
3175        v.visit_variadic_mut(it);
3176    }
3177    v.visit_return_type_mut(&mut node.output);
3178}
3179pub fn visit_span_mut<V>(v: &mut V, node: &mut proc_macro2::Span)
3180where
3181    V: VisitMut + ?Sized,
3182{}
3183#[cfg(feature = "full")]
3184#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3185pub fn visit_static_mutability_mut<V>(v: &mut V, node: &mut crate::StaticMutability)
3186where
3187    V: VisitMut + ?Sized,
3188{
3189    match node {
3190        crate::StaticMutability::Mut(_binding_0) => {
3191            skip!(_binding_0);
3192        }
3193        crate::StaticMutability::None => {}
3194    }
3195}
3196#[cfg(feature = "full")]
3197#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3198pub fn visit_stmt_mut<V>(v: &mut V, node: &mut crate::Stmt)
3199where
3200    V: VisitMut + ?Sized,
3201{
3202    match node {
3203        crate::Stmt::Local(_binding_0) => {
3204            v.visit_local_mut(_binding_0);
3205        }
3206        crate::Stmt::Item(_binding_0) => {
3207            v.visit_item_mut(_binding_0);
3208        }
3209        crate::Stmt::Expr(_binding_0, _binding_1) => {
3210            v.visit_expr_mut(_binding_0);
3211            skip!(_binding_1);
3212        }
3213        crate::Stmt::Macro(_binding_0) => {
3214            v.visit_stmt_macro_mut(_binding_0);
3215        }
3216    }
3217}
3218#[cfg(feature = "full")]
3219#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3220pub fn visit_stmt_macro_mut<V>(v: &mut V, node: &mut crate::StmtMacro)
3221where
3222    V: VisitMut + ?Sized,
3223{
3224    v.visit_attributes_mut(&mut node.attrs);
3225    v.visit_macro_mut(&mut node.mac);
3226    skip!(node.semi_token);
3227}
3228#[cfg(any(feature = "derive", feature = "full"))]
3229#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3230pub fn visit_trait_bound_mut<V>(v: &mut V, node: &mut crate::TraitBound)
3231where
3232    V: VisitMut + ?Sized,
3233{
3234    skip!(node.paren_token);
3235    v.visit_trait_bound_modifier_mut(&mut node.modifier);
3236    if let Some(it) = &mut node.lifetimes {
3237        v.visit_bound_lifetimes_mut(it);
3238    }
3239    v.visit_path_mut(&mut node.path);
3240}
3241#[cfg(any(feature = "derive", feature = "full"))]
3242#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3243pub fn visit_trait_bound_modifier_mut<V>(v: &mut V, node: &mut crate::TraitBoundModifier)
3244where
3245    V: VisitMut + ?Sized,
3246{
3247    match node {
3248        crate::TraitBoundModifier::None => {}
3249        crate::TraitBoundModifier::Maybe(_binding_0) => {
3250            skip!(_binding_0);
3251        }
3252    }
3253}
3254#[cfg(feature = "full")]
3255#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3256pub fn visit_trait_item_mut<V>(v: &mut V, node: &mut crate::TraitItem)
3257where
3258    V: VisitMut + ?Sized,
3259{
3260    match node {
3261        crate::TraitItem::Const(_binding_0) => {
3262            v.visit_trait_item_const_mut(_binding_0);
3263        }
3264        crate::TraitItem::Fn(_binding_0) => {
3265            v.visit_trait_item_fn_mut(_binding_0);
3266        }
3267        crate::TraitItem::Type(_binding_0) => {
3268            v.visit_trait_item_type_mut(_binding_0);
3269        }
3270        crate::TraitItem::Macro(_binding_0) => {
3271            v.visit_trait_item_macro_mut(_binding_0);
3272        }
3273        crate::TraitItem::Verbatim(_binding_0) => {
3274            v.visit_token_stream_mut(_binding_0);
3275        }
3276    }
3277}
3278#[cfg(feature = "full")]
3279#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3280pub fn visit_trait_item_const_mut<V>(v: &mut V, node: &mut crate::TraitItemConst)
3281where
3282    V: VisitMut + ?Sized,
3283{
3284    v.visit_attributes_mut(&mut node.attrs);
3285    skip!(node.const_token);
3286    v.visit_ident_mut(&mut node.ident);
3287    v.visit_generics_mut(&mut node.generics);
3288    skip!(node.colon_token);
3289    v.visit_type_mut(&mut node.ty);
3290    if let Some(it) = &mut node.default {
3291        skip!((it).0);
3292        v.visit_expr_mut(&mut (it).1);
3293    }
3294    skip!(node.semi_token);
3295}
3296#[cfg(feature = "full")]
3297#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3298pub fn visit_trait_item_fn_mut<V>(v: &mut V, node: &mut crate::TraitItemFn)
3299where
3300    V: VisitMut + ?Sized,
3301{
3302    v.visit_attributes_mut(&mut node.attrs);
3303    v.visit_signature_mut(&mut node.sig);
3304    if let Some(it) = &mut node.default {
3305        v.visit_block_mut(it);
3306    }
3307    skip!(node.semi_token);
3308}
3309#[cfg(feature = "full")]
3310#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3311pub fn visit_trait_item_macro_mut<V>(v: &mut V, node: &mut crate::TraitItemMacro)
3312where
3313    V: VisitMut + ?Sized,
3314{
3315    v.visit_attributes_mut(&mut node.attrs);
3316    v.visit_macro_mut(&mut node.mac);
3317    skip!(node.semi_token);
3318}
3319#[cfg(feature = "full")]
3320#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3321pub fn visit_trait_item_type_mut<V>(v: &mut V, node: &mut crate::TraitItemType)
3322where
3323    V: VisitMut + ?Sized,
3324{
3325    v.visit_attributes_mut(&mut node.attrs);
3326    skip!(node.type_token);
3327    v.visit_ident_mut(&mut node.ident);
3328    v.visit_generics_mut(&mut node.generics);
3329    skip!(node.colon_token);
3330    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
3331        let it = el.value_mut();
3332        v.visit_type_param_bound_mut(it);
3333    }
3334    if let Some(it) = &mut node.default {
3335        skip!((it).0);
3336        v.visit_type_mut(&mut (it).1);
3337    }
3338    skip!(node.semi_token);
3339}
3340#[cfg(any(feature = "derive", feature = "full"))]
3341#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3342pub fn visit_type_mut<V>(v: &mut V, node: &mut crate::Type)
3343where
3344    V: VisitMut + ?Sized,
3345{
3346    match node {
3347        crate::Type::Array(_binding_0) => {
3348            v.visit_type_array_mut(_binding_0);
3349        }
3350        crate::Type::BareFn(_binding_0) => {
3351            v.visit_type_bare_fn_mut(_binding_0);
3352        }
3353        crate::Type::Group(_binding_0) => {
3354            v.visit_type_group_mut(_binding_0);
3355        }
3356        crate::Type::ImplTrait(_binding_0) => {
3357            v.visit_type_impl_trait_mut(_binding_0);
3358        }
3359        crate::Type::Infer(_binding_0) => {
3360            v.visit_type_infer_mut(_binding_0);
3361        }
3362        crate::Type::Macro(_binding_0) => {
3363            v.visit_type_macro_mut(_binding_0);
3364        }
3365        crate::Type::Never(_binding_0) => {
3366            v.visit_type_never_mut(_binding_0);
3367        }
3368        crate::Type::Paren(_binding_0) => {
3369            v.visit_type_paren_mut(_binding_0);
3370        }
3371        crate::Type::Path(_binding_0) => {
3372            v.visit_type_path_mut(_binding_0);
3373        }
3374        crate::Type::Ptr(_binding_0) => {
3375            v.visit_type_ptr_mut(_binding_0);
3376        }
3377        crate::Type::Reference(_binding_0) => {
3378            v.visit_type_reference_mut(_binding_0);
3379        }
3380        crate::Type::Slice(_binding_0) => {
3381            v.visit_type_slice_mut(_binding_0);
3382        }
3383        crate::Type::TraitObject(_binding_0) => {
3384            v.visit_type_trait_object_mut(_binding_0);
3385        }
3386        crate::Type::Tuple(_binding_0) => {
3387            v.visit_type_tuple_mut(_binding_0);
3388        }
3389        crate::Type::Verbatim(_binding_0) => {
3390            v.visit_token_stream_mut(_binding_0);
3391        }
3392    }
3393}
3394#[cfg(any(feature = "derive", feature = "full"))]
3395#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3396pub fn visit_type_array_mut<V>(v: &mut V, node: &mut crate::TypeArray)
3397where
3398    V: VisitMut + ?Sized,
3399{
3400    skip!(node.bracket_token);
3401    v.visit_type_mut(&mut *node.elem);
3402    skip!(node.semi_token);
3403    v.visit_expr_mut(&mut node.len);
3404}
3405#[cfg(any(feature = "derive", feature = "full"))]
3406#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3407pub fn visit_type_bare_fn_mut<V>(v: &mut V, node: &mut crate::TypeBareFn)
3408where
3409    V: VisitMut + ?Sized,
3410{
3411    if let Some(it) = &mut node.lifetimes {
3412        v.visit_bound_lifetimes_mut(it);
3413    }
3414    skip!(node.unsafety);
3415    if let Some(it) = &mut node.abi {
3416        v.visit_abi_mut(it);
3417    }
3418    skip!(node.fn_token);
3419    skip!(node.paren_token);
3420    for mut el in Punctuated::pairs_mut(&mut node.inputs) {
3421        let it = el.value_mut();
3422        v.visit_bare_fn_arg_mut(it);
3423    }
3424    if let Some(it) = &mut node.variadic {
3425        v.visit_bare_variadic_mut(it);
3426    }
3427    v.visit_return_type_mut(&mut node.output);
3428}
3429#[cfg(any(feature = "derive", feature = "full"))]
3430#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3431pub fn visit_type_group_mut<V>(v: &mut V, node: &mut crate::TypeGroup)
3432where
3433    V: VisitMut + ?Sized,
3434{
3435    skip!(node.group_token);
3436    v.visit_type_mut(&mut *node.elem);
3437}
3438#[cfg(any(feature = "derive", feature = "full"))]
3439#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3440pub fn visit_type_impl_trait_mut<V>(v: &mut V, node: &mut crate::TypeImplTrait)
3441where
3442    V: VisitMut + ?Sized,
3443{
3444    skip!(node.impl_token);
3445    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
3446        let it = el.value_mut();
3447        v.visit_type_param_bound_mut(it);
3448    }
3449}
3450#[cfg(any(feature = "derive", feature = "full"))]
3451#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3452pub fn visit_type_infer_mut<V>(v: &mut V, node: &mut crate::TypeInfer)
3453where
3454    V: VisitMut + ?Sized,
3455{
3456    skip!(node.underscore_token);
3457}
3458#[cfg(any(feature = "derive", feature = "full"))]
3459#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3460pub fn visit_type_macro_mut<V>(v: &mut V, node: &mut crate::TypeMacro)
3461where
3462    V: VisitMut + ?Sized,
3463{
3464    v.visit_macro_mut(&mut node.mac);
3465}
3466#[cfg(any(feature = "derive", feature = "full"))]
3467#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3468pub fn visit_type_never_mut<V>(v: &mut V, node: &mut crate::TypeNever)
3469where
3470    V: VisitMut + ?Sized,
3471{
3472    skip!(node.bang_token);
3473}
3474#[cfg(any(feature = "derive", feature = "full"))]
3475#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3476pub fn visit_type_param_mut<V>(v: &mut V, node: &mut crate::TypeParam)
3477where
3478    V: VisitMut + ?Sized,
3479{
3480    v.visit_attributes_mut(&mut node.attrs);
3481    v.visit_ident_mut(&mut node.ident);
3482    skip!(node.colon_token);
3483    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
3484        let it = el.value_mut();
3485        v.visit_type_param_bound_mut(it);
3486    }
3487    skip!(node.eq_token);
3488    if let Some(it) = &mut node.default {
3489        v.visit_type_mut(it);
3490    }
3491}
3492#[cfg(any(feature = "derive", feature = "full"))]
3493#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3494pub fn visit_type_param_bound_mut<V>(v: &mut V, node: &mut crate::TypeParamBound)
3495where
3496    V: VisitMut + ?Sized,
3497{
3498    match node {
3499        crate::TypeParamBound::Trait(_binding_0) => {
3500            v.visit_trait_bound_mut(_binding_0);
3501        }
3502        crate::TypeParamBound::Lifetime(_binding_0) => {
3503            v.visit_lifetime_mut(_binding_0);
3504        }
3505        crate::TypeParamBound::PreciseCapture(_binding_0) => {
3506            full!(v.visit_precise_capture_mut(_binding_0));
3507        }
3508        crate::TypeParamBound::Verbatim(_binding_0) => {
3509            v.visit_token_stream_mut(_binding_0);
3510        }
3511    }
3512}
3513#[cfg(any(feature = "derive", feature = "full"))]
3514#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3515pub fn visit_type_paren_mut<V>(v: &mut V, node: &mut crate::TypeParen)
3516where
3517    V: VisitMut + ?Sized,
3518{
3519    skip!(node.paren_token);
3520    v.visit_type_mut(&mut *node.elem);
3521}
3522#[cfg(any(feature = "derive", feature = "full"))]
3523#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3524pub fn visit_type_path_mut<V>(v: &mut V, node: &mut crate::TypePath)
3525where
3526    V: VisitMut + ?Sized,
3527{
3528    if let Some(it) = &mut node.qself {
3529        v.visit_qself_mut(it);
3530    }
3531    v.visit_path_mut(&mut node.path);
3532}
3533#[cfg(any(feature = "derive", feature = "full"))]
3534#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3535pub fn visit_type_ptr_mut<V>(v: &mut V, node: &mut crate::TypePtr)
3536where
3537    V: VisitMut + ?Sized,
3538{
3539    skip!(node.star_token);
3540    skip!(node.const_token);
3541    skip!(node.mutability);
3542    v.visit_type_mut(&mut *node.elem);
3543}
3544#[cfg(any(feature = "derive", feature = "full"))]
3545#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3546pub fn visit_type_reference_mut<V>(v: &mut V, node: &mut crate::TypeReference)
3547where
3548    V: VisitMut + ?Sized,
3549{
3550    skip!(node.and_token);
3551    if let Some(it) = &mut node.lifetime {
3552        v.visit_lifetime_mut(it);
3553    }
3554    skip!(node.mutability);
3555    v.visit_type_mut(&mut *node.elem);
3556}
3557#[cfg(any(feature = "derive", feature = "full"))]
3558#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3559pub fn visit_type_slice_mut<V>(v: &mut V, node: &mut crate::TypeSlice)
3560where
3561    V: VisitMut + ?Sized,
3562{
3563    skip!(node.bracket_token);
3564    v.visit_type_mut(&mut *node.elem);
3565}
3566#[cfg(any(feature = "derive", feature = "full"))]
3567#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3568pub fn visit_type_trait_object_mut<V>(v: &mut V, node: &mut crate::TypeTraitObject)
3569where
3570    V: VisitMut + ?Sized,
3571{
3572    skip!(node.dyn_token);
3573    for mut el in Punctuated::pairs_mut(&mut node.bounds) {
3574        let it = el.value_mut();
3575        v.visit_type_param_bound_mut(it);
3576    }
3577}
3578#[cfg(any(feature = "derive", feature = "full"))]
3579#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3580pub fn visit_type_tuple_mut<V>(v: &mut V, node: &mut crate::TypeTuple)
3581where
3582    V: VisitMut + ?Sized,
3583{
3584    skip!(node.paren_token);
3585    for mut el in Punctuated::pairs_mut(&mut node.elems) {
3586        let it = el.value_mut();
3587        v.visit_type_mut(it);
3588    }
3589}
3590#[cfg(any(feature = "derive", feature = "full"))]
3591#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3592pub fn visit_un_op_mut<V>(v: &mut V, node: &mut crate::UnOp)
3593where
3594    V: VisitMut + ?Sized,
3595{
3596    match node {
3597        crate::UnOp::Deref(_binding_0) => {
3598            skip!(_binding_0);
3599        }
3600        crate::UnOp::Not(_binding_0) => {
3601            skip!(_binding_0);
3602        }
3603        crate::UnOp::Neg(_binding_0) => {
3604            skip!(_binding_0);
3605        }
3606    }
3607}
3608#[cfg(feature = "full")]
3609#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3610pub fn visit_use_glob_mut<V>(v: &mut V, node: &mut crate::UseGlob)
3611where
3612    V: VisitMut + ?Sized,
3613{
3614    skip!(node.star_token);
3615}
3616#[cfg(feature = "full")]
3617#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3618pub fn visit_use_group_mut<V>(v: &mut V, node: &mut crate::UseGroup)
3619where
3620    V: VisitMut + ?Sized,
3621{
3622    skip!(node.brace_token);
3623    for mut el in Punctuated::pairs_mut(&mut node.items) {
3624        let it = el.value_mut();
3625        v.visit_use_tree_mut(it);
3626    }
3627}
3628#[cfg(feature = "full")]
3629#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3630pub fn visit_use_name_mut<V>(v: &mut V, node: &mut crate::UseName)
3631where
3632    V: VisitMut + ?Sized,
3633{
3634    v.visit_ident_mut(&mut node.ident);
3635}
3636#[cfg(feature = "full")]
3637#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3638pub fn visit_use_path_mut<V>(v: &mut V, node: &mut crate::UsePath)
3639where
3640    V: VisitMut + ?Sized,
3641{
3642    v.visit_ident_mut(&mut node.ident);
3643    skip!(node.colon2_token);
3644    v.visit_use_tree_mut(&mut *node.tree);
3645}
3646#[cfg(feature = "full")]
3647#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3648pub fn visit_use_rename_mut<V>(v: &mut V, node: &mut crate::UseRename)
3649where
3650    V: VisitMut + ?Sized,
3651{
3652    v.visit_ident_mut(&mut node.ident);
3653    skip!(node.as_token);
3654    v.visit_ident_mut(&mut node.rename);
3655}
3656#[cfg(feature = "full")]
3657#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3658pub fn visit_use_tree_mut<V>(v: &mut V, node: &mut crate::UseTree)
3659where
3660    V: VisitMut + ?Sized,
3661{
3662    match node {
3663        crate::UseTree::Path(_binding_0) => {
3664            v.visit_use_path_mut(_binding_0);
3665        }
3666        crate::UseTree::Name(_binding_0) => {
3667            v.visit_use_name_mut(_binding_0);
3668        }
3669        crate::UseTree::Rename(_binding_0) => {
3670            v.visit_use_rename_mut(_binding_0);
3671        }
3672        crate::UseTree::Glob(_binding_0) => {
3673            v.visit_use_glob_mut(_binding_0);
3674        }
3675        crate::UseTree::Group(_binding_0) => {
3676            v.visit_use_group_mut(_binding_0);
3677        }
3678    }
3679}
3680#[cfg(feature = "full")]
3681#[cfg_attr(docsrs, doc(cfg(feature = "full")))]
3682pub fn visit_variadic_mut<V>(v: &mut V, node: &mut crate::Variadic)
3683where
3684    V: VisitMut + ?Sized,
3685{
3686    v.visit_attributes_mut(&mut node.attrs);
3687    if let Some(it) = &mut node.pat {
3688        v.visit_pat_mut(&mut *(it).0);
3689        skip!((it).1);
3690    }
3691    skip!(node.dots);
3692    skip!(node.comma);
3693}
3694#[cfg(any(feature = "derive", feature = "full"))]
3695#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3696pub fn visit_variant_mut<V>(v: &mut V, node: &mut crate::Variant)
3697where
3698    V: VisitMut + ?Sized,
3699{
3700    v.visit_attributes_mut(&mut node.attrs);
3701    v.visit_ident_mut(&mut node.ident);
3702    v.visit_fields_mut(&mut node.fields);
3703    if let Some(it) = &mut node.discriminant {
3704        skip!((it).0);
3705        v.visit_expr_mut(&mut (it).1);
3706    }
3707}
3708#[cfg(any(feature = "derive", feature = "full"))]
3709#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3710pub fn visit_vis_restricted_mut<V>(v: &mut V, node: &mut crate::VisRestricted)
3711where
3712    V: VisitMut + ?Sized,
3713{
3714    skip!(node.pub_token);
3715    skip!(node.paren_token);
3716    skip!(node.in_token);
3717    v.visit_path_mut(&mut *node.path);
3718}
3719#[cfg(any(feature = "derive", feature = "full"))]
3720#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3721pub fn visit_visibility_mut<V>(v: &mut V, node: &mut crate::Visibility)
3722where
3723    V: VisitMut + ?Sized,
3724{
3725    match node {
3726        crate::Visibility::Public(_binding_0) => {
3727            skip!(_binding_0);
3728        }
3729        crate::Visibility::Restricted(_binding_0) => {
3730            v.visit_vis_restricted_mut(_binding_0);
3731        }
3732        crate::Visibility::Inherited => {}
3733    }
3734}
3735#[cfg(any(feature = "derive", feature = "full"))]
3736#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3737pub fn visit_where_clause_mut<V>(v: &mut V, node: &mut crate::WhereClause)
3738where
3739    V: VisitMut + ?Sized,
3740{
3741    skip!(node.where_token);
3742    for mut el in Punctuated::pairs_mut(&mut node.predicates) {
3743        let it = el.value_mut();
3744        v.visit_where_predicate_mut(it);
3745    }
3746}
3747#[cfg(any(feature = "derive", feature = "full"))]
3748#[cfg_attr(docsrs, doc(cfg(any(feature = "derive", feature = "full"))))]
3749pub fn visit_where_predicate_mut<V>(v: &mut V, node: &mut crate::WherePredicate)
3750where
3751    V: VisitMut + ?Sized,
3752{
3753    match node {
3754        crate::WherePredicate::Lifetime(_binding_0) => {
3755            v.visit_predicate_lifetime_mut(_binding_0);
3756        }
3757        crate::WherePredicate::Type(_binding_0) => {
3758            v.visit_predicate_type_mut(_binding_0);
3759        }
3760    }
3761}
~/ Read-only file preview.