syn_pub_items/gen/
visit_mut.rs

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