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