Merge oxidize scripts
[hiphop-php.git] / hphp / hack / src / oxidized / aast_visitor / visitor_mut.rs
blobd463624af4eff1b85aeab3c200e2080b55e24ab2
1 // Copyright (c) Facebook, Inc. and its affiliates.
2 //
3 // This source code is licensed under the MIT license found in the
4 // LICENSE file in the "hack" directory of this source tree.
5 //
6 // @generated SignedSource<<9d9a094bbdcddd615354e4ccc72a8665>>
7 //
8 // To regenerate this file, run:
9 //   hphp/hack/src/oxidize_regen.sh
11 #![allow(unused_variables)]
12 use super::node_mut::NodeMut;
13 use super::type_params::Params;
14 use crate::{aast::*, aast_defs::*, ast_defs::*, doc_comment::*};
15 pub fn visit<'node, P: Params>(
16     v: &mut impl VisitorMut<'node, P = P>,
17     c: &mut P::Context,
18     p: &'node mut impl NodeMut<P>,
19 ) -> Result<(), P::Error> {
20     p.accept(c, v)
22 pub trait VisitorMut<'node> {
23     type P: Params;
24     fn object(&mut self) -> &mut dyn VisitorMut<'node, P = Self::P>;
25     fn visit_ex(
26         &mut self,
27         c: &mut <Self::P as Params>::Context,
28         p: &'node mut <Self::P as Params>::Ex,
29     ) -> Result<(), <Self::P as Params>::Error> {
30         Ok(())
31     }
32     fn visit_fb(
33         &mut self,
34         c: &mut <Self::P as Params>::Context,
35         p: &'node mut <Self::P as Params>::Fb,
36     ) -> Result<(), <Self::P as Params>::Error> {
37         Ok(())
38     }
39     fn visit_en(
40         &mut self,
41         c: &mut <Self::P as Params>::Context,
42         p: &'node mut <Self::P as Params>::En,
43     ) -> Result<(), <Self::P as Params>::Error> {
44         Ok(())
45     }
46     fn visit_hi(
47         &mut self,
48         c: &mut <Self::P as Params>::Context,
49         p: &'node mut <Self::P as Params>::Hi,
50     ) -> Result<(), <Self::P as Params>::Error> {
51         Ok(())
52     }
53     fn visit_afield(
54         &mut self,
55         c: &mut <Self::P as Params>::Context,
56         p: &'node mut Afield<
57             <Self::P as Params>::Ex,
58             <Self::P as Params>::Fb,
59             <Self::P as Params>::En,
60             <Self::P as Params>::Hi,
61         >,
62     ) -> Result<(), <Self::P as Params>::Error> {
63         p.recurse(c, self.object())
64     }
65     fn visit_as_expr(
66         &mut self,
67         c: &mut <Self::P as Params>::Context,
68         p: &'node mut AsExpr<
69             <Self::P as Params>::Ex,
70             <Self::P as Params>::Fb,
71             <Self::P as Params>::En,
72             <Self::P as Params>::Hi,
73         >,
74     ) -> Result<(), <Self::P as Params>::Error> {
75         p.recurse(c, self.object())
76     }
77     fn visit_bop(
78         &mut self,
79         c: &mut <Self::P as Params>::Context,
80         p: &'node mut Bop,
81     ) -> Result<(), <Self::P as Params>::Error> {
82         p.recurse(c, self.object())
83     }
84     fn visit_ca_field(
85         &mut self,
86         c: &mut <Self::P as Params>::Context,
87         p: &'node mut CaField<
88             <Self::P as Params>::Ex,
89             <Self::P as Params>::Fb,
90             <Self::P as Params>::En,
91             <Self::P as Params>::Hi,
92         >,
93     ) -> Result<(), <Self::P as Params>::Error> {
94         p.recurse(c, self.object())
95     }
96     fn visit_ca_type(
97         &mut self,
98         c: &mut <Self::P as Params>::Context,
99         p: &'node mut CaType,
100     ) -> Result<(), <Self::P as Params>::Error> {
101         p.recurse(c, self.object())
102     }
103     fn visit_case(
104         &mut self,
105         c: &mut <Self::P as Params>::Context,
106         p: &'node mut Case<
107             <Self::P as Params>::Ex,
108             <Self::P as Params>::Fb,
109             <Self::P as Params>::En,
110             <Self::P as Params>::Hi,
111         >,
112     ) -> Result<(), <Self::P as Params>::Error> {
113         p.recurse(c, self.object())
114     }
115     fn visit_catch(
116         &mut self,
117         c: &mut <Self::P as Params>::Context,
118         p: &'node mut Catch<
119             <Self::P as Params>::Ex,
120             <Self::P as Params>::Fb,
121             <Self::P as Params>::En,
122             <Self::P as Params>::Hi,
123         >,
124     ) -> Result<(), <Self::P as Params>::Error> {
125         p.recurse(c, self.object())
126     }
127     fn visit_class_attr(
128         &mut self,
129         c: &mut <Self::P as Params>::Context,
130         p: &'node mut ClassAttr<
131             <Self::P as Params>::Ex,
132             <Self::P as Params>::Fb,
133             <Self::P as Params>::En,
134             <Self::P as Params>::Hi,
135         >,
136     ) -> Result<(), <Self::P as Params>::Error> {
137         p.recurse(c, self.object())
138     }
139     fn visit_class_const(
140         &mut self,
141         c: &mut <Self::P as Params>::Context,
142         p: &'node mut ClassConst<
143             <Self::P as Params>::Ex,
144             <Self::P as Params>::Fb,
145             <Self::P as Params>::En,
146             <Self::P as Params>::Hi,
147         >,
148     ) -> Result<(), <Self::P as Params>::Error> {
149         p.recurse(c, self.object())
150     }
151     fn visit_class_get_expr(
152         &mut self,
153         c: &mut <Self::P as Params>::Context,
154         p: &'node mut ClassGetExpr<
155             <Self::P as Params>::Ex,
156             <Self::P as Params>::Fb,
157             <Self::P as Params>::En,
158             <Self::P as Params>::Hi,
159         >,
160     ) -> Result<(), <Self::P as Params>::Error> {
161         p.recurse(c, self.object())
162     }
163     fn visit_class_id(
164         &mut self,
165         c: &mut <Self::P as Params>::Context,
166         p: &'node mut ClassId<
167             <Self::P as Params>::Ex,
168             <Self::P as Params>::Fb,
169             <Self::P as Params>::En,
170             <Self::P as Params>::Hi,
171         >,
172     ) -> Result<(), <Self::P as Params>::Error> {
173         p.recurse(c, self.object())
174     }
175     fn visit_class_id_(
176         &mut self,
177         c: &mut <Self::P as Params>::Context,
178         p: &'node mut ClassId_<
179             <Self::P as Params>::Ex,
180             <Self::P as Params>::Fb,
181             <Self::P as Params>::En,
182             <Self::P as Params>::Hi,
183         >,
184     ) -> Result<(), <Self::P as Params>::Error> {
185         p.recurse(c, self.object())
186     }
187     fn visit_class_kind(
188         &mut self,
189         c: &mut <Self::P as Params>::Context,
190         p: &'node mut ClassKind,
191     ) -> Result<(), <Self::P as Params>::Error> {
192         p.recurse(c, self.object())
193     }
194     fn visit_class_typeconst(
195         &mut self,
196         c: &mut <Self::P as Params>::Context,
197         p: &'node mut ClassTypeconst<
198             <Self::P as Params>::Ex,
199             <Self::P as Params>::Fb,
200             <Self::P as Params>::En,
201             <Self::P as Params>::Hi,
202         >,
203     ) -> Result<(), <Self::P as Params>::Error> {
204         p.recurse(c, self.object())
205     }
206     fn visit_class_var(
207         &mut self,
208         c: &mut <Self::P as Params>::Context,
209         p: &'node mut ClassVar<
210             <Self::P as Params>::Ex,
211             <Self::P as Params>::Fb,
212             <Self::P as Params>::En,
213             <Self::P as Params>::Hi,
214         >,
215     ) -> Result<(), <Self::P as Params>::Error> {
216         p.recurse(c, self.object())
217     }
218     fn visit_class_(
219         &mut self,
220         c: &mut <Self::P as Params>::Context,
221         p: &'node mut Class_<
222             <Self::P as Params>::Ex,
223             <Self::P as Params>::Fb,
224             <Self::P as Params>::En,
225             <Self::P as Params>::Hi,
226         >,
227     ) -> Result<(), <Self::P as Params>::Error> {
228         p.recurse(c, self.object())
229     }
230     fn visit_collection_targ(
231         &mut self,
232         c: &mut <Self::P as Params>::Context,
233         p: &'node mut CollectionTarg<<Self::P as Params>::Hi>,
234     ) -> Result<(), <Self::P as Params>::Error> {
235         p.recurse(c, self.object())
236     }
237     fn visit_constraint_kind(
238         &mut self,
239         c: &mut <Self::P as Params>::Context,
240         p: &'node mut ConstraintKind,
241     ) -> Result<(), <Self::P as Params>::Error> {
242         p.recurse(c, self.object())
243     }
244     fn visit_contexts(
245         &mut self,
246         c: &mut <Self::P as Params>::Context,
247         p: &'node mut Contexts,
248     ) -> Result<(), <Self::P as Params>::Error> {
249         p.recurse(c, self.object())
250     }
251     fn visit_def(
252         &mut self,
253         c: &mut <Self::P as Params>::Context,
254         p: &'node mut Def<
255             <Self::P as Params>::Ex,
256             <Self::P as Params>::Fb,
257             <Self::P as Params>::En,
258             <Self::P as Params>::Hi,
259         >,
260     ) -> Result<(), <Self::P as Params>::Error> {
261         p.recurse(c, self.object())
262     }
263     fn visit_doc_comment(
264         &mut self,
265         c: &mut <Self::P as Params>::Context,
266         p: &'node mut DocComment,
267     ) -> Result<(), <Self::P as Params>::Error> {
268         p.recurse(c, self.object())
269     }
270     fn visit_emit_id(
271         &mut self,
272         c: &mut <Self::P as Params>::Context,
273         p: &'node mut EmitId,
274     ) -> Result<(), <Self::P as Params>::Error> {
275         p.recurse(c, self.object())
276     }
277     fn visit_enum_(
278         &mut self,
279         c: &mut <Self::P as Params>::Context,
280         p: &'node mut Enum_,
281     ) -> Result<(), <Self::P as Params>::Error> {
282         p.recurse(c, self.object())
283     }
284     fn visit_env_annot(
285         &mut self,
286         c: &mut <Self::P as Params>::Context,
287         p: &'node mut EnvAnnot,
288     ) -> Result<(), <Self::P as Params>::Error> {
289         p.recurse(c, self.object())
290     }
291     fn visit_expr(
292         &mut self,
293         c: &mut <Self::P as Params>::Context,
294         p: &'node mut Expr<
295             <Self::P as Params>::Ex,
296             <Self::P as Params>::Fb,
297             <Self::P as Params>::En,
298             <Self::P as Params>::Hi,
299         >,
300     ) -> Result<(), <Self::P as Params>::Error> {
301         p.recurse(c, self.object())
302     }
303     fn visit_expr_(
304         &mut self,
305         c: &mut <Self::P as Params>::Context,
306         p: &'node mut Expr_<
307             <Self::P as Params>::Ex,
308             <Self::P as Params>::Fb,
309             <Self::P as Params>::En,
310             <Self::P as Params>::Hi,
311         >,
312     ) -> Result<(), <Self::P as Params>::Error> {
313         p.recurse(c, self.object())
314     }
315     fn visit_expression_tree(
316         &mut self,
317         c: &mut <Self::P as Params>::Context,
318         p: &'node mut ExpressionTree<
319             <Self::P as Params>::Ex,
320             <Self::P as Params>::Fb,
321             <Self::P as Params>::En,
322             <Self::P as Params>::Hi,
323         >,
324     ) -> Result<(), <Self::P as Params>::Error> {
325         p.recurse(c, self.object())
326     }
327     fn visit_field(
328         &mut self,
329         c: &mut <Self::P as Params>::Context,
330         p: &'node mut Field<
331             <Self::P as Params>::Ex,
332             <Self::P as Params>::Fb,
333             <Self::P as Params>::En,
334             <Self::P as Params>::Hi,
335         >,
336     ) -> Result<(), <Self::P as Params>::Error> {
337         p.recurse(c, self.object())
338     }
339     fn visit_file_attribute(
340         &mut self,
341         c: &mut <Self::P as Params>::Context,
342         p: &'node mut FileAttribute<
343             <Self::P as Params>::Ex,
344             <Self::P as Params>::Fb,
345             <Self::P as Params>::En,
346             <Self::P as Params>::Hi,
347         >,
348     ) -> Result<(), <Self::P as Params>::Error> {
349         p.recurse(c, self.object())
350     }
351     fn visit_fun_kind(
352         &mut self,
353         c: &mut <Self::P as Params>::Context,
354         p: &'node mut FunKind,
355     ) -> Result<(), <Self::P as Params>::Error> {
356         p.recurse(c, self.object())
357     }
358     fn visit_fun_param(
359         &mut self,
360         c: &mut <Self::P as Params>::Context,
361         p: &'node mut FunParam<
362             <Self::P as Params>::Ex,
363             <Self::P as Params>::Fb,
364             <Self::P as Params>::En,
365             <Self::P as Params>::Hi,
366         >,
367     ) -> Result<(), <Self::P as Params>::Error> {
368         p.recurse(c, self.object())
369     }
370     fn visit_fun_variadicity(
371         &mut self,
372         c: &mut <Self::P as Params>::Context,
373         p: &'node mut FunVariadicity<
374             <Self::P as Params>::Ex,
375             <Self::P as Params>::Fb,
376             <Self::P as Params>::En,
377             <Self::P as Params>::Hi,
378         >,
379     ) -> Result<(), <Self::P as Params>::Error> {
380         p.recurse(c, self.object())
381     }
382     fn visit_fun_(
383         &mut self,
384         c: &mut <Self::P as Params>::Context,
385         p: &'node mut Fun_<
386             <Self::P as Params>::Ex,
387             <Self::P as Params>::Fb,
388             <Self::P as Params>::En,
389             <Self::P as Params>::Hi,
390         >,
391     ) -> Result<(), <Self::P as Params>::Error> {
392         p.recurse(c, self.object())
393     }
394     fn visit_func_body(
395         &mut self,
396         c: &mut <Self::P as Params>::Context,
397         p: &'node mut FuncBody<
398             <Self::P as Params>::Ex,
399             <Self::P as Params>::Fb,
400             <Self::P as Params>::En,
401             <Self::P as Params>::Hi,
402         >,
403     ) -> Result<(), <Self::P as Params>::Error> {
404         p.recurse(c, self.object())
405     }
406     fn visit_func_reactive(
407         &mut self,
408         c: &mut <Self::P as Params>::Context,
409         p: &'node mut FuncReactive,
410     ) -> Result<(), <Self::P as Params>::Error> {
411         p.recurse(c, self.object())
412     }
413     fn visit_function_ptr_id(
414         &mut self,
415         c: &mut <Self::P as Params>::Context,
416         p: &'node mut FunctionPtrId<
417             <Self::P as Params>::Ex,
418             <Self::P as Params>::Fb,
419             <Self::P as Params>::En,
420             <Self::P as Params>::Hi,
421         >,
422     ) -> Result<(), <Self::P as Params>::Error> {
423         p.recurse(c, self.object())
424     }
425     fn visit_gconst(
426         &mut self,
427         c: &mut <Self::P as Params>::Context,
428         p: &'node mut Gconst<
429             <Self::P as Params>::Ex,
430             <Self::P as Params>::Fb,
431             <Self::P as Params>::En,
432             <Self::P as Params>::Hi,
433         >,
434     ) -> Result<(), <Self::P as Params>::Error> {
435         p.recurse(c, self.object())
436     }
437     fn visit_hint(
438         &mut self,
439         c: &mut <Self::P as Params>::Context,
440         p: &'node mut Hint,
441     ) -> Result<(), <Self::P as Params>::Error> {
442         p.recurse(c, self.object())
443     }
444     fn visit_hint_fun(
445         &mut self,
446         c: &mut <Self::P as Params>::Context,
447         p: &'node mut HintFun,
448     ) -> Result<(), <Self::P as Params>::Error> {
449         p.recurse(c, self.object())
450     }
451     fn visit_hint_(
452         &mut self,
453         c: &mut <Self::P as Params>::Context,
454         p: &'node mut Hint_,
455     ) -> Result<(), <Self::P as Params>::Error> {
456         p.recurse(c, self.object())
457     }
458     fn visit_id(
459         &mut self,
460         c: &mut <Self::P as Params>::Context,
461         p: &'node mut Id,
462     ) -> Result<(), <Self::P as Params>::Error> {
463         p.recurse(c, self.object())
464     }
465     fn visit_import_flavor(
466         &mut self,
467         c: &mut <Self::P as Params>::Context,
468         p: &'node mut ImportFlavor,
469     ) -> Result<(), <Self::P as Params>::Error> {
470         p.recurse(c, self.object())
471     }
472     fn visit_insteadof_alias(
473         &mut self,
474         c: &mut <Self::P as Params>::Context,
475         p: &'node mut InsteadofAlias,
476     ) -> Result<(), <Self::P as Params>::Error> {
477         p.recurse(c, self.object())
478     }
479     fn visit_kvc_kind(
480         &mut self,
481         c: &mut <Self::P as Params>::Context,
482         p: &'node mut KvcKind,
483     ) -> Result<(), <Self::P as Params>::Error> {
484         p.recurse(c, self.object())
485     }
486     fn visit_lid(
487         &mut self,
488         c: &mut <Self::P as Params>::Context,
489         p: &'node mut Lid,
490     ) -> Result<(), <Self::P as Params>::Error> {
491         p.recurse(c, self.object())
492     }
493     fn visit_method_(
494         &mut self,
495         c: &mut <Self::P as Params>::Context,
496         p: &'node mut Method_<
497             <Self::P as Params>::Ex,
498             <Self::P as Params>::Fb,
499             <Self::P as Params>::En,
500             <Self::P as Params>::Hi,
501         >,
502     ) -> Result<(), <Self::P as Params>::Error> {
503         p.recurse(c, self.object())
504     }
505     fn visit_nast_shape_info(
506         &mut self,
507         c: &mut <Self::P as Params>::Context,
508         p: &'node mut NastShapeInfo,
509     ) -> Result<(), <Self::P as Params>::Error> {
510         p.recurse(c, self.object())
511     }
512     fn visit_ns_kind(
513         &mut self,
514         c: &mut <Self::P as Params>::Context,
515         p: &'node mut NsKind,
516     ) -> Result<(), <Self::P as Params>::Error> {
517         p.recurse(c, self.object())
518     }
519     fn visit_og_null_flavor(
520         &mut self,
521         c: &mut <Self::P as Params>::Context,
522         p: &'node mut OgNullFlavor,
523     ) -> Result<(), <Self::P as Params>::Error> {
524         p.recurse(c, self.object())
525     }
526     fn visit_param_kind(
527         &mut self,
528         c: &mut <Self::P as Params>::Context,
529         p: &'node mut ParamKind,
530     ) -> Result<(), <Self::P as Params>::Error> {
531         p.recurse(c, self.object())
532     }
533     fn visit_param_mutability(
534         &mut self,
535         c: &mut <Self::P as Params>::Context,
536         p: &'node mut ParamMutability,
537     ) -> Result<(), <Self::P as Params>::Error> {
538         p.recurse(c, self.object())
539     }
540     fn visit_record_def(
541         &mut self,
542         c: &mut <Self::P as Params>::Context,
543         p: &'node mut RecordDef<
544             <Self::P as Params>::Ex,
545             <Self::P as Params>::Fb,
546             <Self::P as Params>::En,
547             <Self::P as Params>::Hi,
548         >,
549     ) -> Result<(), <Self::P as Params>::Error> {
550         p.recurse(c, self.object())
551     }
552     fn visit_reify_kind(
553         &mut self,
554         c: &mut <Self::P as Params>::Context,
555         p: &'node mut ReifyKind,
556     ) -> Result<(), <Self::P as Params>::Error> {
557         p.recurse(c, self.object())
558     }
559     fn visit_shape_field_info(
560         &mut self,
561         c: &mut <Self::P as Params>::Context,
562         p: &'node mut ShapeFieldInfo,
563     ) -> Result<(), <Self::P as Params>::Error> {
564         p.recurse(c, self.object())
565     }
566     fn visit_shape_field_name(
567         &mut self,
568         c: &mut <Self::P as Params>::Context,
569         p: &'node mut ShapeFieldName,
570     ) -> Result<(), <Self::P as Params>::Error> {
571         p.recurse(c, self.object())
572     }
573     fn visit_stmt(
574         &mut self,
575         c: &mut <Self::P as Params>::Context,
576         p: &'node mut Stmt<
577             <Self::P as Params>::Ex,
578             <Self::P as Params>::Fb,
579             <Self::P as Params>::En,
580             <Self::P as Params>::Hi,
581         >,
582     ) -> Result<(), <Self::P as Params>::Error> {
583         p.recurse(c, self.object())
584     }
585     fn visit_stmt_(
586         &mut self,
587         c: &mut <Self::P as Params>::Context,
588         p: &'node mut Stmt_<
589             <Self::P as Params>::Ex,
590             <Self::P as Params>::Fb,
591             <Self::P as Params>::En,
592             <Self::P as Params>::Hi,
593         >,
594     ) -> Result<(), <Self::P as Params>::Error> {
595         p.recurse(c, self.object())
596     }
597     fn visit_targ(
598         &mut self,
599         c: &mut <Self::P as Params>::Context,
600         p: &'node mut Targ<<Self::P as Params>::Hi>,
601     ) -> Result<(), <Self::P as Params>::Error> {
602         p.recurse(c, self.object())
603     }
604     fn visit_tparam(
605         &mut self,
606         c: &mut <Self::P as Params>::Context,
607         p: &'node mut Tparam<
608             <Self::P as Params>::Ex,
609             <Self::P as Params>::Fb,
610             <Self::P as Params>::En,
611             <Self::P as Params>::Hi,
612         >,
613     ) -> Result<(), <Self::P as Params>::Error> {
614         p.recurse(c, self.object())
615     }
616     fn visit_tprim(
617         &mut self,
618         c: &mut <Self::P as Params>::Context,
619         p: &'node mut Tprim,
620     ) -> Result<(), <Self::P as Params>::Error> {
621         p.recurse(c, self.object())
622     }
623     fn visit_type_hint(
624         &mut self,
625         c: &mut <Self::P as Params>::Context,
626         p: &'node mut TypeHint<<Self::P as Params>::Hi>,
627     ) -> Result<(), <Self::P as Params>::Error> {
628         p.recurse(c, self.object())
629     }
630     fn visit_typeconst_abstract_kind(
631         &mut self,
632         c: &mut <Self::P as Params>::Context,
633         p: &'node mut TypeconstAbstractKind,
634     ) -> Result<(), <Self::P as Params>::Error> {
635         p.recurse(c, self.object())
636     }
637     fn visit_typedef(
638         &mut self,
639         c: &mut <Self::P as Params>::Context,
640         p: &'node mut Typedef<
641             <Self::P as Params>::Ex,
642             <Self::P as Params>::Fb,
643             <Self::P as Params>::En,
644             <Self::P as Params>::Hi,
645         >,
646     ) -> Result<(), <Self::P as Params>::Error> {
647         p.recurse(c, self.object())
648     }
649     fn visit_typedef_visibility(
650         &mut self,
651         c: &mut <Self::P as Params>::Context,
652         p: &'node mut TypedefVisibility,
653     ) -> Result<(), <Self::P as Params>::Error> {
654         p.recurse(c, self.object())
655     }
656     fn visit_uop(
657         &mut self,
658         c: &mut <Self::P as Params>::Context,
659         p: &'node mut Uop,
660     ) -> Result<(), <Self::P as Params>::Error> {
661         p.recurse(c, self.object())
662     }
663     fn visit_use_as_alias(
664         &mut self,
665         c: &mut <Self::P as Params>::Context,
666         p: &'node mut UseAsAlias,
667     ) -> Result<(), <Self::P as Params>::Error> {
668         p.recurse(c, self.object())
669     }
670     fn visit_use_as_visibility(
671         &mut self,
672         c: &mut <Self::P as Params>::Context,
673         p: &'node mut UseAsVisibility,
674     ) -> Result<(), <Self::P as Params>::Error> {
675         p.recurse(c, self.object())
676     }
677     fn visit_user_attribute(
678         &mut self,
679         c: &mut <Self::P as Params>::Context,
680         p: &'node mut UserAttribute<
681             <Self::P as Params>::Ex,
682             <Self::P as Params>::Fb,
683             <Self::P as Params>::En,
684             <Self::P as Params>::Hi,
685         >,
686     ) -> Result<(), <Self::P as Params>::Error> {
687         p.recurse(c, self.object())
688     }
689     fn visit_using_stmt(
690         &mut self,
691         c: &mut <Self::P as Params>::Context,
692         p: &'node mut UsingStmt<
693             <Self::P as Params>::Ex,
694             <Self::P as Params>::Fb,
695             <Self::P as Params>::En,
696             <Self::P as Params>::Hi,
697         >,
698     ) -> Result<(), <Self::P as Params>::Error> {
699         p.recurse(c, self.object())
700     }
701     fn visit_variance(
702         &mut self,
703         c: &mut <Self::P as Params>::Context,
704         p: &'node mut Variance,
705     ) -> Result<(), <Self::P as Params>::Error> {
706         p.recurse(c, self.object())
707     }
708     fn visit_vc_kind(
709         &mut self,
710         c: &mut <Self::P as Params>::Context,
711         p: &'node mut VcKind,
712     ) -> Result<(), <Self::P as Params>::Error> {
713         p.recurse(c, self.object())
714     }
715     fn visit_visibility(
716         &mut self,
717         c: &mut <Self::P as Params>::Context,
718         p: &'node mut Visibility,
719     ) -> Result<(), <Self::P as Params>::Error> {
720         p.recurse(c, self.object())
721     }
722     fn visit_where_constraint_hint(
723         &mut self,
724         c: &mut <Self::P as Params>::Context,
725         p: &'node mut WhereConstraintHint,
726     ) -> Result<(), <Self::P as Params>::Error> {
727         p.recurse(c, self.object())
728     }
729     fn visit_xhp_attr(
730         &mut self,
731         c: &mut <Self::P as Params>::Context,
732         p: &'node mut XhpAttr<
733             <Self::P as Params>::Ex,
734             <Self::P as Params>::Fb,
735             <Self::P as Params>::En,
736             <Self::P as Params>::Hi,
737         >,
738     ) -> Result<(), <Self::P as Params>::Error> {
739         p.recurse(c, self.object())
740     }
741     fn visit_xhp_attr_info(
742         &mut self,
743         c: &mut <Self::P as Params>::Context,
744         p: &'node mut XhpAttrInfo,
745     ) -> Result<(), <Self::P as Params>::Error> {
746         p.recurse(c, self.object())
747     }
748     fn visit_xhp_attr_tag(
749         &mut self,
750         c: &mut <Self::P as Params>::Context,
751         p: &'node mut XhpAttrTag,
752     ) -> Result<(), <Self::P as Params>::Error> {
753         p.recurse(c, self.object())
754     }
755     fn visit_xhp_attribute(
756         &mut self,
757         c: &mut <Self::P as Params>::Context,
758         p: &'node mut XhpAttribute<
759             <Self::P as Params>::Ex,
760             <Self::P as Params>::Fb,
761             <Self::P as Params>::En,
762             <Self::P as Params>::Hi,
763         >,
764     ) -> Result<(), <Self::P as Params>::Error> {
765         p.recurse(c, self.object())
766     }
767     fn visit_xhp_child(
768         &mut self,
769         c: &mut <Self::P as Params>::Context,
770         p: &'node mut XhpChild,
771     ) -> Result<(), <Self::P as Params>::Error> {
772         p.recurse(c, self.object())
773     }
774     fn visit_xhp_child_op(
775         &mut self,
776         c: &mut <Self::P as Params>::Context,
777         p: &'node mut XhpChildOp,
778     ) -> Result<(), <Self::P as Params>::Error> {
779         p.recurse(c, self.object())
780     }