1 // Copyright (c) Facebook, Inc. and its affiliates.
3 // This source code is licensed under the MIT license found in the
4 // LICENSE file in the "hack" directory of this source tree.
6 // @generated SignedSource<<9d9a094bbdcddd615354e4ccc72a8665>>
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>,
18 p: &'node mut impl NodeMut<P>,
19 ) -> Result<(), P::Error> {
22 pub trait VisitorMut<'node> {
24 fn object(&mut self) -> &mut dyn VisitorMut<'node, P = Self::P>;
27 c: &mut <Self::P as Params>::Context,
28 p: &'node mut <Self::P as Params>::Ex,
29 ) -> Result<(), <Self::P as Params>::Error> {
34 c: &mut <Self::P as Params>::Context,
35 p: &'node mut <Self::P as Params>::Fb,
36 ) -> Result<(), <Self::P as Params>::Error> {
41 c: &mut <Self::P as Params>::Context,
42 p: &'node mut <Self::P as Params>::En,
43 ) -> Result<(), <Self::P as Params>::Error> {
48 c: &mut <Self::P as Params>::Context,
49 p: &'node mut <Self::P as Params>::Hi,
50 ) -> Result<(), <Self::P as Params>::Error> {
55 c: &mut <Self::P as Params>::Context,
57 <Self::P as Params>::Ex,
58 <Self::P as Params>::Fb,
59 <Self::P as Params>::En,
60 <Self::P as Params>::Hi,
62 ) -> Result<(), <Self::P as Params>::Error> {
63 p.recurse(c, self.object())
67 c: &mut <Self::P as Params>::Context,
69 <Self::P as Params>::Ex,
70 <Self::P as Params>::Fb,
71 <Self::P as Params>::En,
72 <Self::P as Params>::Hi,
74 ) -> Result<(), <Self::P as Params>::Error> {
75 p.recurse(c, self.object())
79 c: &mut <Self::P as Params>::Context,
81 ) -> Result<(), <Self::P as Params>::Error> {
82 p.recurse(c, self.object())
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,
93 ) -> Result<(), <Self::P as Params>::Error> {
94 p.recurse(c, self.object())
98 c: &mut <Self::P as Params>::Context,
100 ) -> Result<(), <Self::P as Params>::Error> {
101 p.recurse(c, self.object())
105 c: &mut <Self::P as Params>::Context,
107 <Self::P as Params>::Ex,
108 <Self::P as Params>::Fb,
109 <Self::P as Params>::En,
110 <Self::P as Params>::Hi,
112 ) -> Result<(), <Self::P as Params>::Error> {
113 p.recurse(c, self.object())
117 c: &mut <Self::P as Params>::Context,
119 <Self::P as Params>::Ex,
120 <Self::P as Params>::Fb,
121 <Self::P as Params>::En,
122 <Self::P as Params>::Hi,
124 ) -> Result<(), <Self::P as Params>::Error> {
125 p.recurse(c, self.object())
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,
136 ) -> Result<(), <Self::P as Params>::Error> {
137 p.recurse(c, self.object())
139 fn visit_class_const(
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,
148 ) -> Result<(), <Self::P as Params>::Error> {
149 p.recurse(c, self.object())
151 fn visit_class_get_expr(
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,
160 ) -> Result<(), <Self::P as Params>::Error> {
161 p.recurse(c, self.object())
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,
172 ) -> Result<(), <Self::P as Params>::Error> {
173 p.recurse(c, self.object())
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,
184 ) -> Result<(), <Self::P as Params>::Error> {
185 p.recurse(c, self.object())
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())
194 fn visit_class_typeconst(
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,
203 ) -> Result<(), <Self::P as Params>::Error> {
204 p.recurse(c, self.object())
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,
215 ) -> Result<(), <Self::P as Params>::Error> {
216 p.recurse(c, self.object())
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,
227 ) -> Result<(), <Self::P as Params>::Error> {
228 p.recurse(c, self.object())
230 fn visit_collection_targ(
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())
237 fn visit_constraint_kind(
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())
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())
253 c: &mut <Self::P as Params>::Context,
255 <Self::P as Params>::Ex,
256 <Self::P as Params>::Fb,
257 <Self::P as Params>::En,
258 <Self::P as Params>::Hi,
260 ) -> Result<(), <Self::P as Params>::Error> {
261 p.recurse(c, self.object())
263 fn visit_doc_comment(
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())
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())
279 c: &mut <Self::P as Params>::Context,
281 ) -> Result<(), <Self::P as Params>::Error> {
282 p.recurse(c, self.object())
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())
293 c: &mut <Self::P as Params>::Context,
295 <Self::P as Params>::Ex,
296 <Self::P as Params>::Fb,
297 <Self::P as Params>::En,
298 <Self::P as Params>::Hi,
300 ) -> Result<(), <Self::P as Params>::Error> {
301 p.recurse(c, self.object())
305 c: &mut <Self::P as Params>::Context,
307 <Self::P as Params>::Ex,
308 <Self::P as Params>::Fb,
309 <Self::P as Params>::En,
310 <Self::P as Params>::Hi,
312 ) -> Result<(), <Self::P as Params>::Error> {
313 p.recurse(c, self.object())
315 fn visit_expression_tree(
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,
324 ) -> Result<(), <Self::P as Params>::Error> {
325 p.recurse(c, self.object())
329 c: &mut <Self::P as Params>::Context,
331 <Self::P as Params>::Ex,
332 <Self::P as Params>::Fb,
333 <Self::P as Params>::En,
334 <Self::P as Params>::Hi,
336 ) -> Result<(), <Self::P as Params>::Error> {
337 p.recurse(c, self.object())
339 fn visit_file_attribute(
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,
348 ) -> Result<(), <Self::P as Params>::Error> {
349 p.recurse(c, self.object())
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())
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,
367 ) -> Result<(), <Self::P as Params>::Error> {
368 p.recurse(c, self.object())
370 fn visit_fun_variadicity(
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,
379 ) -> Result<(), <Self::P as Params>::Error> {
380 p.recurse(c, self.object())
384 c: &mut <Self::P as Params>::Context,
386 <Self::P as Params>::Ex,
387 <Self::P as Params>::Fb,
388 <Self::P as Params>::En,
389 <Self::P as Params>::Hi,
391 ) -> Result<(), <Self::P as Params>::Error> {
392 p.recurse(c, self.object())
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,
403 ) -> Result<(), <Self::P as Params>::Error> {
404 p.recurse(c, self.object())
406 fn visit_func_reactive(
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())
413 fn visit_function_ptr_id(
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,
422 ) -> Result<(), <Self::P as Params>::Error> {
423 p.recurse(c, self.object())
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,
434 ) -> Result<(), <Self::P as Params>::Error> {
435 p.recurse(c, self.object())
439 c: &mut <Self::P as Params>::Context,
441 ) -> Result<(), <Self::P as Params>::Error> {
442 p.recurse(c, self.object())
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())
453 c: &mut <Self::P as Params>::Context,
455 ) -> Result<(), <Self::P as Params>::Error> {
456 p.recurse(c, self.object())
460 c: &mut <Self::P as Params>::Context,
462 ) -> Result<(), <Self::P as Params>::Error> {
463 p.recurse(c, self.object())
465 fn visit_import_flavor(
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())
472 fn visit_insteadof_alias(
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())
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())
488 c: &mut <Self::P as Params>::Context,
490 ) -> Result<(), <Self::P as Params>::Error> {
491 p.recurse(c, self.object())
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,
502 ) -> Result<(), <Self::P as Params>::Error> {
503 p.recurse(c, self.object())
505 fn visit_nast_shape_info(
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())
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())
519 fn visit_og_null_flavor(
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())
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())
533 fn visit_param_mutability(
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())
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,
549 ) -> Result<(), <Self::P as Params>::Error> {
550 p.recurse(c, self.object())
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())
559 fn visit_shape_field_info(
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())
566 fn visit_shape_field_name(
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())
575 c: &mut <Self::P as Params>::Context,
577 <Self::P as Params>::Ex,
578 <Self::P as Params>::Fb,
579 <Self::P as Params>::En,
580 <Self::P as Params>::Hi,
582 ) -> Result<(), <Self::P as Params>::Error> {
583 p.recurse(c, self.object())
587 c: &mut <Self::P as Params>::Context,
589 <Self::P as Params>::Ex,
590 <Self::P as Params>::Fb,
591 <Self::P as Params>::En,
592 <Self::P as Params>::Hi,
594 ) -> Result<(), <Self::P as Params>::Error> {
595 p.recurse(c, self.object())
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())
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,
613 ) -> Result<(), <Self::P as Params>::Error> {
614 p.recurse(c, self.object())
618 c: &mut <Self::P as Params>::Context,
620 ) -> Result<(), <Self::P as Params>::Error> {
621 p.recurse(c, self.object())
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())
630 fn visit_typeconst_abstract_kind(
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())
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,
646 ) -> Result<(), <Self::P as Params>::Error> {
647 p.recurse(c, self.object())
649 fn visit_typedef_visibility(
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())
658 c: &mut <Self::P as Params>::Context,
660 ) -> Result<(), <Self::P as Params>::Error> {
661 p.recurse(c, self.object())
663 fn visit_use_as_alias(
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())
670 fn visit_use_as_visibility(
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())
677 fn visit_user_attribute(
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,
686 ) -> Result<(), <Self::P as Params>::Error> {
687 p.recurse(c, self.object())
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,
698 ) -> Result<(), <Self::P as Params>::Error> {
699 p.recurse(c, self.object())
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())
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())
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())
722 fn visit_where_constraint_hint(
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())
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,
738 ) -> Result<(), <Self::P as Params>::Error> {
739 p.recurse(c, self.object())
741 fn visit_xhp_attr_info(
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())
748 fn visit_xhp_attr_tag(
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())
755 fn visit_xhp_attribute(
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,
764 ) -> Result<(), <Self::P as Params>::Error> {
765 p.recurse(c, self.object())
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())
774 fn visit_xhp_child_op(
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())