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