Skip to main content

syn/gen/
visit_mut.rs

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