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<<28cd663dd0473eae872922b7e1a1e8e1>>
8 // To regenerate this file, run:
9 // hphp/hack/src/oxidized_regen.sh
11 #![allow(unused_imports)]
12 #![allow(unused_variables)]
13 use super::node_mut::NodeMut;
14 use super::type_params::Params;
15 use super::visitor_mut::VisitorMut;
20 doc_comment::{self, *},
23 impl<P: Params> NodeMut<P> for Abstraction {
27 v: &mut dyn VisitorMut<'node, Params = P>,
28 ) -> Result<(), P::Error> {
29 v.visit_abstraction(c, self)
34 v: &mut dyn VisitorMut<'node, Params = P>,
35 ) -> Result<(), P::Error> {
37 Abstraction::Concrete => Ok(()),
38 Abstraction::Abstract => Ok(()),
42 impl<P: Params> NodeMut<P> for Afield<P::Ex, P::En> {
46 v: &mut dyn VisitorMut<'node, Params = P>,
47 ) -> Result<(), P::Error> {
48 v.visit_afield(c, self)
53 v: &mut dyn VisitorMut<'node, Params = P>,
54 ) -> Result<(), P::Error> {
56 Afield::AFvalue(a0) => a0.accept(c, v),
57 Afield::AFkvalue(a0, a1) => {
64 impl<P: Params> NodeMut<P> for AsExpr<P::Ex, P::En> {
68 v: &mut dyn VisitorMut<'node, Params = P>,
69 ) -> Result<(), P::Error> {
70 v.visit_as_expr(c, self)
75 v: &mut dyn VisitorMut<'node, Params = P>,
76 ) -> Result<(), P::Error> {
78 AsExpr::AsV(a0) => a0.accept(c, v),
79 AsExpr::AsKv(a0, a1) => {
83 AsExpr::AwaitAsV(a0, a1) => {
87 AsExpr::AwaitAsKv(a0, a1, a2) => {
95 impl<P: Params> NodeMut<P> for Bop {
99 v: &mut dyn VisitorMut<'node, Params = P>,
100 ) -> Result<(), P::Error> {
106 v: &mut dyn VisitorMut<'node, Params = P>,
107 ) -> Result<(), P::Error> {
110 Bop::Minus => Ok(()),
112 Bop::Slash => Ok(()),
114 Bop::Eqeqeq => Ok(()),
115 Bop::Starstar => Ok(()),
117 Bop::Diff2 => Ok(()),
118 Bop::Ampamp => Ok(()),
119 Bop::Barbar => Ok(()),
129 Bop::Percent => Ok(()),
132 Bop::QuestionQuestion => Ok(()),
133 Bop::Eq(a0) => a0.accept(c, v),
137 impl<P: Params> NodeMut<P> for CaField<P::Ex, P::En> {
141 v: &mut dyn VisitorMut<'node, Params = P>,
142 ) -> Result<(), P::Error> {
143 v.visit_ca_field(c, self)
148 v: &mut dyn VisitorMut<'node, Params = P>,
149 ) -> Result<(), P::Error> {
150 self.type_.accept(c, v)?;
151 self.id.accept(c, v)?;
152 self.value.accept(c, v)?;
153 self.required.accept(c, v)
156 impl<P: Params> NodeMut<P> for CaType {
160 v: &mut dyn VisitorMut<'node, Params = P>,
161 ) -> Result<(), P::Error> {
162 v.visit_ca_type(c, self)
167 v: &mut dyn VisitorMut<'node, Params = P>,
168 ) -> Result<(), P::Error> {
170 CaType::CAHint(a0) => a0.accept(c, v),
171 CaType::CAEnum(a0) => a0.accept(c, v),
175 impl<P: Params> NodeMut<P> for Case<P::Ex, P::En> {
179 v: &mut dyn VisitorMut<'node, Params = P>,
180 ) -> Result<(), P::Error> {
181 v.visit_case(c, self)
186 v: &mut dyn VisitorMut<'node, Params = P>,
187 ) -> Result<(), P::Error> {
188 self.0.accept(c, v)?;
192 impl<P: Params> NodeMut<P> for Catch<P::Ex, P::En> {
196 v: &mut dyn VisitorMut<'node, Params = P>,
197 ) -> Result<(), P::Error> {
198 v.visit_catch(c, self)
203 v: &mut dyn VisitorMut<'node, Params = P>,
204 ) -> Result<(), P::Error> {
205 self.0.accept(c, v)?;
206 self.1.accept(c, v)?;
210 impl<P: Params> NodeMut<P> for ClassAbstractTypeconst {
214 v: &mut dyn VisitorMut<'node, Params = P>,
215 ) -> Result<(), P::Error> {
216 v.visit_class_abstract_typeconst(c, self)
221 v: &mut dyn VisitorMut<'node, Params = P>,
222 ) -> Result<(), P::Error> {
223 self.as_constraint.accept(c, v)?;
224 self.super_constraint.accept(c, v)?;
225 self.default.accept(c, v)
228 impl<P: Params> NodeMut<P> for ClassAttr<P::Ex, P::En> {
232 v: &mut dyn VisitorMut<'node, Params = P>,
233 ) -> Result<(), P::Error> {
234 v.visit_class_attr(c, self)
239 v: &mut dyn VisitorMut<'node, Params = P>,
240 ) -> Result<(), P::Error> {
242 ClassAttr::CAName(a0) => a0.accept(c, v),
243 ClassAttr::CAField(a0) => a0.accept(c, v),
247 impl<P: Params> NodeMut<P> for ClassConcreteTypeconst {
251 v: &mut dyn VisitorMut<'node, Params = P>,
252 ) -> Result<(), P::Error> {
253 v.visit_class_concrete_typeconst(c, self)
258 v: &mut dyn VisitorMut<'node, Params = P>,
259 ) -> Result<(), P::Error> {
260 self.c_tc_type.accept(c, v)
263 impl<P: Params> NodeMut<P> for ClassConst<P::Ex, P::En> {
267 v: &mut dyn VisitorMut<'node, Params = P>,
268 ) -> Result<(), P::Error> {
269 v.visit_class_const(c, self)
274 v: &mut dyn VisitorMut<'node, Params = P>,
275 ) -> Result<(), P::Error> {
276 self.user_attributes.accept(c, v)?;
277 self.type_.accept(c, v)?;
278 self.id.accept(c, v)?;
279 self.kind.accept(c, v)?;
280 self.doc_comment.accept(c, v)
283 impl<P: Params> NodeMut<P> for ClassConstKind<P::Ex, P::En> {
287 v: &mut dyn VisitorMut<'node, Params = P>,
288 ) -> Result<(), P::Error> {
289 v.visit_class_const_kind(c, self)
294 v: &mut dyn VisitorMut<'node, Params = P>,
295 ) -> Result<(), P::Error> {
297 ClassConstKind::CCAbstract(a0) => a0.accept(c, v),
298 ClassConstKind::CCConcrete(a0) => a0.accept(c, v),
302 impl<P: Params> NodeMut<P> for ClassGetExpr<P::Ex, P::En> {
306 v: &mut dyn VisitorMut<'node, Params = P>,
307 ) -> Result<(), P::Error> {
308 v.visit_class_get_expr(c, self)
313 v: &mut dyn VisitorMut<'node, Params = P>,
314 ) -> Result<(), P::Error> {
316 ClassGetExpr::CGstring(a0) => a0.accept(c, v),
317 ClassGetExpr::CGexpr(a0) => a0.accept(c, v),
321 impl<P: Params> NodeMut<P> for ClassId<P::Ex, P::En> {
325 v: &mut dyn VisitorMut<'node, Params = P>,
326 ) -> Result<(), P::Error> {
327 v.visit_class_id(c, self)
332 v: &mut dyn VisitorMut<'node, Params = P>,
333 ) -> Result<(), P::Error> {
334 v.visit_ex(c, &mut self.0)?;
335 self.1.accept(c, v)?;
339 impl<P: Params> NodeMut<P> for ClassId_<P::Ex, P::En> {
343 v: &mut dyn VisitorMut<'node, Params = P>,
344 ) -> Result<(), P::Error> {
345 v.visit_class_id_(c, self)
350 v: &mut dyn VisitorMut<'node, Params = P>,
351 ) -> Result<(), P::Error> {
353 ClassId_::CIparent => Ok(()),
354 ClassId_::CIself => Ok(()),
355 ClassId_::CIstatic => Ok(()),
356 ClassId_::CIexpr(a0) => a0.accept(c, v),
357 ClassId_::CI(a0) => a0.accept(c, v),
361 impl<P: Params> NodeMut<P> for ClassTypeconst {
365 v: &mut dyn VisitorMut<'node, Params = P>,
366 ) -> Result<(), P::Error> {
367 v.visit_class_typeconst(c, self)
372 v: &mut dyn VisitorMut<'node, Params = P>,
373 ) -> Result<(), P::Error> {
375 ClassTypeconst::TCAbstract(a0) => a0.accept(c, v),
376 ClassTypeconst::TCConcrete(a0) => a0.accept(c, v),
380 impl<P: Params> NodeMut<P> for ClassTypeconstDef<P::Ex, P::En> {
384 v: &mut dyn VisitorMut<'node, Params = P>,
385 ) -> Result<(), P::Error> {
386 v.visit_class_typeconst_def(c, self)
391 v: &mut dyn VisitorMut<'node, Params = P>,
392 ) -> Result<(), P::Error> {
393 self.user_attributes.accept(c, v)?;
394 self.name.accept(c, v)?;
395 self.kind.accept(c, v)?;
396 self.span.accept(c, v)?;
397 self.doc_comment.accept(c, v)?;
398 self.is_ctx.accept(c, v)
401 impl<P: Params> NodeMut<P> for ClassVar<P::Ex, P::En> {
405 v: &mut dyn VisitorMut<'node, Params = P>,
406 ) -> Result<(), P::Error> {
407 v.visit_class_var(c, self)
412 v: &mut dyn VisitorMut<'node, Params = P>,
413 ) -> Result<(), P::Error> {
414 self.final_.accept(c, v)?;
415 self.xhp_attr.accept(c, v)?;
416 self.abstract_.accept(c, v)?;
417 self.readonly.accept(c, v)?;
418 self.visibility.accept(c, v)?;
419 self.type_.accept(c, v)?;
420 self.id.accept(c, v)?;
421 self.expr.accept(c, v)?;
422 self.user_attributes.accept(c, v)?;
423 self.doc_comment.accept(c, v)?;
424 self.is_promoted_variadic.accept(c, v)?;
425 self.is_static.accept(c, v)?;
426 self.span.accept(c, v)
429 impl<P: Params> NodeMut<P> for Class_<P::Ex, P::En> {
433 v: &mut dyn VisitorMut<'node, Params = P>,
434 ) -> Result<(), P::Error> {
435 v.visit_class_(c, self)
440 v: &mut dyn VisitorMut<'node, Params = P>,
441 ) -> Result<(), P::Error> {
442 self.span.accept(c, v)?;
443 v.visit_en(c, &mut self.annotation)?;
444 self.mode.accept(c, v)?;
445 self.final_.accept(c, v)?;
446 self.is_xhp.accept(c, v)?;
447 self.has_xhp_keyword.accept(c, v)?;
448 self.kind.accept(c, v)?;
449 self.name.accept(c, v)?;
450 self.tparams.accept(c, v)?;
451 self.extends.accept(c, v)?;
452 self.uses.accept(c, v)?;
453 self.xhp_attr_uses.accept(c, v)?;
454 self.xhp_category.accept(c, v)?;
455 self.reqs.accept(c, v)?;
456 self.implements.accept(c, v)?;
457 self.where_constraints.accept(c, v)?;
458 self.consts.accept(c, v)?;
459 self.typeconsts.accept(c, v)?;
460 self.vars.accept(c, v)?;
461 self.methods.accept(c, v)?;
462 self.attributes.accept(c, v)?;
463 self.xhp_children.accept(c, v)?;
464 self.xhp_attrs.accept(c, v)?;
465 self.namespace.accept(c, v)?;
466 self.user_attributes.accept(c, v)?;
467 self.file_attributes.accept(c, v)?;
468 self.enum_.accept(c, v)?;
469 self.doc_comment.accept(c, v)?;
470 self.emit_id.accept(c, v)?;
471 self.internal.accept(c, v)?;
472 self.module.accept(c, v)
475 impl<P: Params> NodeMut<P> for ClassishKind {
479 v: &mut dyn VisitorMut<'node, Params = P>,
480 ) -> Result<(), P::Error> {
481 v.visit_classish_kind(c, self)
486 v: &mut dyn VisitorMut<'node, Params = P>,
487 ) -> Result<(), P::Error> {
489 ClassishKind::Cclass(a0) => a0.accept(c, v),
490 ClassishKind::Cinterface => Ok(()),
491 ClassishKind::Ctrait => Ok(()),
492 ClassishKind::Cenum => Ok(()),
493 ClassishKind::CenumClass(a0) => a0.accept(c, v),
497 impl<P: Params> NodeMut<P> for CollectionTarg<P::Ex> {
501 v: &mut dyn VisitorMut<'node, Params = P>,
502 ) -> Result<(), P::Error> {
503 v.visit_collection_targ(c, self)
508 v: &mut dyn VisitorMut<'node, Params = P>,
509 ) -> Result<(), P::Error> {
511 CollectionTarg::CollectionTV(a0) => a0.accept(c, v),
512 CollectionTarg::CollectionTKV(a0, a1) => {
519 impl<P: Params> NodeMut<P> for ConstraintKind {
523 v: &mut dyn VisitorMut<'node, Params = P>,
524 ) -> Result<(), P::Error> {
525 v.visit_constraint_kind(c, self)
530 v: &mut dyn VisitorMut<'node, Params = P>,
531 ) -> Result<(), P::Error> {
533 ConstraintKind::ConstraintAs => Ok(()),
534 ConstraintKind::ConstraintEq => Ok(()),
535 ConstraintKind::ConstraintSuper => Ok(()),
539 impl<P: Params> NodeMut<P> for Contexts {
543 v: &mut dyn VisitorMut<'node, Params = P>,
544 ) -> Result<(), P::Error> {
545 v.visit_contexts(c, self)
550 v: &mut dyn VisitorMut<'node, Params = P>,
551 ) -> Result<(), P::Error> {
552 self.0.accept(c, v)?;
556 impl<P: Params> NodeMut<P> for Def<P::Ex, P::En> {
560 v: &mut dyn VisitorMut<'node, Params = P>,
561 ) -> Result<(), P::Error> {
567 v: &mut dyn VisitorMut<'node, Params = P>,
568 ) -> Result<(), P::Error> {
570 fn helper0<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
571 a: &'node mut Box<(Sid, Vec<Def<Ex, En>>)>,
573 v: &mut dyn VisitorMut<'node, Params = P>,
574 ) -> Result<(), P::Error> {
579 Def::Fun(a0) => a0.accept(c, v),
580 Def::Class(a0) => a0.accept(c, v),
581 Def::Stmt(a0) => a0.accept(c, v),
582 Def::Typedef(a0) => a0.accept(c, v),
583 Def::Constant(a0) => a0.accept(c, v),
584 Def::Namespace(a) => helper0(a, c, v),
585 Def::NamespaceUse(a0) => a0.accept(c, v),
586 Def::SetNamespaceEnv(a0) => a0.accept(c, v),
587 Def::FileAttributes(a0) => a0.accept(c, v),
588 Def::Module(a0) => a0.accept(c, v),
589 Def::SetModule(a0) => a0.accept(c, v),
593 impl<P: Params> NodeMut<P> for DefaultCase<P::Ex, P::En> {
597 v: &mut dyn VisitorMut<'node, Params = P>,
598 ) -> Result<(), P::Error> {
599 v.visit_default_case(c, self)
604 v: &mut dyn VisitorMut<'node, Params = P>,
605 ) -> Result<(), P::Error> {
606 self.0.accept(c, v)?;
610 impl<P: Params> NodeMut<P> for DocComment {
614 v: &mut dyn VisitorMut<'node, Params = P>,
615 ) -> Result<(), P::Error> {
616 v.visit_doc_comment(c, self)
621 v: &mut dyn VisitorMut<'node, Params = P>,
622 ) -> Result<(), P::Error> {
626 impl<P: Params> NodeMut<P> for EmitId {
630 v: &mut dyn VisitorMut<'node, Params = P>,
631 ) -> Result<(), P::Error> {
632 v.visit_emit_id(c, self)
637 v: &mut dyn VisitorMut<'node, Params = P>,
638 ) -> Result<(), P::Error> {
640 EmitId::EmitId(a0) => a0.accept(c, v),
641 EmitId::Anonymous => Ok(()),
645 impl<P: Params> NodeMut<P> for Enum_ {
649 v: &mut dyn VisitorMut<'node, Params = P>,
650 ) -> Result<(), P::Error> {
651 v.visit_enum_(c, self)
656 v: &mut dyn VisitorMut<'node, Params = P>,
657 ) -> Result<(), P::Error> {
658 self.base.accept(c, v)?;
659 self.constraint.accept(c, v)?;
660 self.includes.accept(c, v)
663 impl<P: Params> NodeMut<P> for EnvAnnot {
667 v: &mut dyn VisitorMut<'node, Params = P>,
668 ) -> Result<(), P::Error> {
669 v.visit_env_annot(c, self)
674 v: &mut dyn VisitorMut<'node, Params = P>,
675 ) -> Result<(), P::Error> {
677 EnvAnnot::Join => Ok(()),
678 EnvAnnot::Refinement => Ok(()),
682 impl<P: Params> NodeMut<P> for Expr<P::Ex, P::En> {
686 v: &mut dyn VisitorMut<'node, Params = P>,
687 ) -> Result<(), P::Error> {
688 v.visit_expr(c, self)
693 v: &mut dyn VisitorMut<'node, Params = P>,
694 ) -> Result<(), P::Error> {
695 v.visit_ex(c, &mut self.0)?;
696 self.1.accept(c, v)?;
700 impl<P: Params> NodeMut<P> for Expr_<P::Ex, P::En> {
704 v: &mut dyn VisitorMut<'node, Params = P>,
705 ) -> Result<(), P::Error> {
706 v.visit_expr_(c, self)
711 v: &mut dyn VisitorMut<'node, Params = P>,
712 ) -> Result<(), P::Error> {
714 fn helper0<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
716 Option<(Targ<Ex>, Targ<Ex>)>,
717 Vec<(Expr<Ex, En>, Expr<Ex, En>)>,
720 v: &mut dyn VisitorMut<'node, Params = P>,
721 ) -> Result<(), P::Error> {
726 fn helper1<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
727 a: &'node mut Box<(Option<Targ<Ex>>, Vec<Expr<Ex, En>>)>,
729 v: &mut dyn VisitorMut<'node, Params = P>,
730 ) -> Result<(), P::Error> {
735 fn helper2<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
736 a: &'node mut Box<(VcKind, Option<Targ<Ex>>, Vec<Expr<Ex, En>>)>,
738 v: &mut dyn VisitorMut<'node, Params = P>,
739 ) -> Result<(), P::Error> {
745 fn helper3<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
746 a: &'node mut Box<(KvcKind, Option<(Targ<Ex>, Targ<Ex>)>, Vec<Field<Ex, En>>)>,
748 v: &mut dyn VisitorMut<'node, Params = P>,
749 ) -> Result<(), P::Error> {
755 fn helper4<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
756 a: &'node mut Box<(Expr<Ex, En>, Option<Expr<Ex, En>>)>,
758 v: &mut dyn VisitorMut<'node, Params = P>,
759 ) -> Result<(), P::Error> {
764 fn helper5<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
765 a: &'node mut Box<(Expr<Ex, En>, Expr<Ex, En>, OgNullFlavor, PropOrMethod)>,
767 v: &mut dyn VisitorMut<'node, Params = P>,
768 ) -> Result<(), P::Error> {
775 fn helper6<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
776 a: &'node mut Box<(ClassId<Ex, En>, ClassGetExpr<Ex, En>, PropOrMethod)>,
778 v: &mut dyn VisitorMut<'node, Params = P>,
779 ) -> Result<(), P::Error> {
785 fn helper7<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
786 a: &'node mut Box<(ClassId<Ex, En>, Pstring)>,
788 v: &mut dyn VisitorMut<'node, Params = P>,
789 ) -> Result<(), P::Error> {
794 fn helper8<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
798 Vec<(ast_defs::ParamKind, Expr<Ex, En>)>,
799 Option<Expr<Ex, En>>,
802 v: &mut dyn VisitorMut<'node, Params = P>,
803 ) -> Result<(), P::Error> {
810 fn helper9<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
811 a: &'node mut Box<(FunctionPtrId<Ex, En>, Vec<Targ<Ex>>)>,
813 v: &mut dyn VisitorMut<'node, Params = P>,
814 ) -> Result<(), P::Error> {
819 fn helper10<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
820 a: &'node mut Box<(String, Expr<Ex, En>)>,
822 v: &mut dyn VisitorMut<'node, Params = P>,
823 ) -> Result<(), P::Error> {
828 fn helper11<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
829 a: &'node mut Box<(Hint, Expr<Ex, En>)>,
831 v: &mut dyn VisitorMut<'node, Params = P>,
832 ) -> Result<(), P::Error> {
837 fn helper12<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
838 a: &'node mut Box<(ast_defs::Uop, Expr<Ex, En>)>,
840 v: &mut dyn VisitorMut<'node, Params = P>,
841 ) -> Result<(), P::Error> {
846 fn helper13<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
847 a: &'node mut Box<(ast_defs::Bop, Expr<Ex, En>, Expr<Ex, En>)>,
849 v: &mut dyn VisitorMut<'node, Params = P>,
850 ) -> Result<(), P::Error> {
856 fn helper14<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
857 a: &'node mut Box<(Lid, Expr<Ex, En>, Expr<Ex, En>)>,
859 v: &mut dyn VisitorMut<'node, Params = P>,
860 ) -> Result<(), P::Error> {
866 fn helper15<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
867 a: &'node mut Box<(Expr<Ex, En>, Option<Expr<Ex, En>>, Expr<Ex, En>)>,
869 v: &mut dyn VisitorMut<'node, Params = P>,
870 ) -> Result<(), P::Error> {
876 fn helper16<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
877 a: &'node mut Box<(Expr<Ex, En>, Hint)>,
879 v: &mut dyn VisitorMut<'node, Params = P>,
880 ) -> Result<(), P::Error> {
885 fn helper17<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
886 a: &'node mut Box<(Expr<Ex, En>, Hint, bool)>,
888 v: &mut dyn VisitorMut<'node, Params = P>,
889 ) -> Result<(), P::Error> {
895 fn helper18<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
896 a: &'node mut Box<(Expr<Ex, En>, Hint)>,
898 v: &mut dyn VisitorMut<'node, Params = P>,
899 ) -> Result<(), P::Error> {
904 fn helper19<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
909 Option<Expr<Ex, En>>,
913 v: &mut dyn VisitorMut<'node, Params = P>,
914 ) -> Result<(), P::Error> {
919 v.visit_ex(c, &mut a.4)
922 fn helper20<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
923 a: &'node mut Box<(Fun_<Ex, En>, Vec<Lid>)>,
925 v: &mut dyn VisitorMut<'node, Params = P>,
926 ) -> Result<(), P::Error> {
931 fn helper21<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
932 a: &'node mut Box<(Fun_<Ex, En>, Vec<Lid>)>,
934 v: &mut dyn VisitorMut<'node, Params = P>,
935 ) -> Result<(), P::Error> {
940 fn helper22<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
941 a: &'node mut Box<(ClassName, Vec<XhpAttribute<Ex, En>>, Vec<Expr<Ex, En>>)>,
943 v: &mut dyn VisitorMut<'node, Params = P>,
944 ) -> Result<(), P::Error> {
950 fn helper23<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
951 a: &'node mut Box<(ImportFlavor, Expr<Ex, En>)>,
953 v: &mut dyn VisitorMut<'node, Params = P>,
954 ) -> Result<(), P::Error> {
959 fn helper24<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
960 a: &'node mut Box<(ClassName, Option<CollectionTarg<Ex>>, Vec<Afield<Ex, En>>)>,
962 v: &mut dyn VisitorMut<'node, Params = P>,
963 ) -> Result<(), P::Error> {
969 fn helper25<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
970 a: &'node mut Box<(Expr<Ex, En>, Pstring)>,
972 v: &mut dyn VisitorMut<'node, Params = P>,
973 ) -> Result<(), P::Error> {
978 fn helper26<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
979 a: &'node mut Box<(ClassName, Pstring)>,
981 v: &mut dyn VisitorMut<'node, Params = P>,
982 ) -> Result<(), P::Error> {
987 fn helper27<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
988 a: &'node mut Box<(ClassId<Ex, En>, Pstring)>,
990 v: &mut dyn VisitorMut<'node, Params = P>,
991 ) -> Result<(), P::Error> {
996 fn helper28<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
997 a: &'node mut Box<(Option<(Targ<Ex>, Targ<Ex>)>, Expr<Ex, En>, Expr<Ex, En>)>,
999 v: &mut dyn VisitorMut<'node, Params = P>,
1000 ) -> Result<(), P::Error> {
1006 fn helper29<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1007 a: &'node mut Box<(Option<ClassName>, String)>,
1009 v: &mut dyn VisitorMut<'node, Params = P>,
1010 ) -> Result<(), P::Error> {
1015 fn helper30<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1016 a: &'node mut Box<(Expr<Ex, En>, Ex, Ex, HoleSource)>,
1018 v: &mut dyn VisitorMut<'node, Params = P>,
1019 ) -> Result<(), P::Error> {
1021 v.visit_ex(c, &mut a.1)?;
1022 v.visit_ex(c, &mut a.2)?;
1026 Expr_::Darray(a) => helper0(a, c, v),
1027 Expr_::Varray(a) => helper1(a, c, v),
1028 Expr_::Shape(a0) => a0.accept(c, v),
1029 Expr_::ValCollection(a) => helper2(a, c, v),
1030 Expr_::KeyValCollection(a) => helper3(a, c, v),
1031 Expr_::Null => Ok(()),
1032 Expr_::This => Ok(()),
1033 Expr_::True => Ok(()),
1034 Expr_::False => Ok(()),
1035 Expr_::Omitted => Ok(()),
1036 Expr_::Id(a0) => a0.accept(c, v),
1037 Expr_::Lvar(a0) => a0.accept(c, v),
1038 Expr_::Dollardollar(a0) => a0.accept(c, v),
1039 Expr_::Clone(a0) => a0.accept(c, v),
1040 Expr_::ArrayGet(a) => helper4(a, c, v),
1041 Expr_::ObjGet(a) => helper5(a, c, v),
1042 Expr_::ClassGet(a) => helper6(a, c, v),
1043 Expr_::ClassConst(a) => helper7(a, c, v),
1044 Expr_::Call(a) => helper8(a, c, v),
1045 Expr_::FunctionPointer(a) => helper9(a, c, v),
1046 Expr_::Int(a0) => a0.accept(c, v),
1047 Expr_::Float(a0) => a0.accept(c, v),
1048 Expr_::String(a0) => a0.accept(c, v),
1049 Expr_::String2(a0) => a0.accept(c, v),
1050 Expr_::PrefixedString(a) => helper10(a, c, v),
1051 Expr_::Yield(a0) => a0.accept(c, v),
1052 Expr_::Await(a0) => a0.accept(c, v),
1053 Expr_::ReadonlyExpr(a0) => a0.accept(c, v),
1054 Expr_::Tuple(a0) => a0.accept(c, v),
1055 Expr_::List(a0) => a0.accept(c, v),
1056 Expr_::Cast(a) => helper11(a, c, v),
1057 Expr_::Unop(a) => helper12(a, c, v),
1058 Expr_::Binop(a) => helper13(a, c, v),
1059 Expr_::Pipe(a) => helper14(a, c, v),
1060 Expr_::Eif(a) => helper15(a, c, v),
1061 Expr_::Is(a) => helper16(a, c, v),
1062 Expr_::As(a) => helper17(a, c, v),
1063 Expr_::Upcast(a) => helper18(a, c, v),
1064 Expr_::New(a) => helper19(a, c, v),
1065 Expr_::Efun(a) => helper20(a, c, v),
1066 Expr_::Lfun(a) => helper21(a, c, v),
1067 Expr_::Xml(a) => helper22(a, c, v),
1068 Expr_::Import(a) => helper23(a, c, v),
1069 Expr_::Collection(a) => helper24(a, c, v),
1070 Expr_::ExpressionTree(a0) => a0.accept(c, v),
1071 Expr_::Lplaceholder(a0) => a0.accept(c, v),
1072 Expr_::FunId(a0) => a0.accept(c, v),
1073 Expr_::MethodId(a) => helper25(a, c, v),
1074 Expr_::MethodCaller(a) => helper26(a, c, v),
1075 Expr_::SmethodId(a) => helper27(a, c, v),
1076 Expr_::Pair(a) => helper28(a, c, v),
1077 Expr_::ETSplice(a0) => a0.accept(c, v),
1078 Expr_::EnumClassLabel(a) => helper29(a, c, v),
1079 Expr_::Hole(a) => helper30(a, c, v),
1083 impl<P: Params> NodeMut<P> for ExpressionTree<P::Ex, P::En> {
1087 v: &mut dyn VisitorMut<'node, Params = P>,
1088 ) -> Result<(), P::Error> {
1089 v.visit_expression_tree(c, self)
1094 v: &mut dyn VisitorMut<'node, Params = P>,
1095 ) -> Result<(), P::Error> {
1096 self.hint.accept(c, v)?;
1097 self.splices.accept(c, v)?;
1098 self.function_pointers.accept(c, v)?;
1099 self.virtualized_expr.accept(c, v)?;
1100 self.runtime_expr.accept(c, v)?;
1101 self.dollardollar_pos.accept(c, v)
1104 impl<P: Params> NodeMut<P> for Field<P::Ex, P::En> {
1108 v: &mut dyn VisitorMut<'node, Params = P>,
1109 ) -> Result<(), P::Error> {
1110 v.visit_field(c, self)
1115 v: &mut dyn VisitorMut<'node, Params = P>,
1116 ) -> Result<(), P::Error> {
1117 self.0.accept(c, v)?;
1121 impl<P: Params> NodeMut<P> for FileAttribute<P::Ex, P::En> {
1125 v: &mut dyn VisitorMut<'node, Params = P>,
1126 ) -> Result<(), P::Error> {
1127 v.visit_file_attribute(c, self)
1132 v: &mut dyn VisitorMut<'node, Params = P>,
1133 ) -> Result<(), P::Error> {
1134 self.user_attributes.accept(c, v)?;
1135 self.namespace.accept(c, v)
1138 impl<P: Params> NodeMut<P> for FunDef<P::Ex, P::En> {
1142 v: &mut dyn VisitorMut<'node, Params = P>,
1143 ) -> Result<(), P::Error> {
1144 v.visit_fun_def(c, self)
1149 v: &mut dyn VisitorMut<'node, Params = P>,
1150 ) -> Result<(), P::Error> {
1151 self.namespace.accept(c, v)?;
1152 self.file_attributes.accept(c, v)?;
1153 self.mode.accept(c, v)?;
1154 self.fun.accept(c, v)?;
1155 self.internal.accept(c, v)?;
1156 self.module.accept(c, v)
1159 impl<P: Params> NodeMut<P> for FunKind {
1163 v: &mut dyn VisitorMut<'node, Params = P>,
1164 ) -> Result<(), P::Error> {
1165 v.visit_fun_kind(c, self)
1170 v: &mut dyn VisitorMut<'node, Params = P>,
1171 ) -> Result<(), P::Error> {
1173 FunKind::FSync => Ok(()),
1174 FunKind::FAsync => Ok(()),
1175 FunKind::FGenerator => Ok(()),
1176 FunKind::FAsyncGenerator => Ok(()),
1180 impl<P: Params> NodeMut<P> for FunParam<P::Ex, P::En> {
1184 v: &mut dyn VisitorMut<'node, Params = P>,
1185 ) -> Result<(), P::Error> {
1186 v.visit_fun_param(c, self)
1191 v: &mut dyn VisitorMut<'node, Params = P>,
1192 ) -> Result<(), P::Error> {
1193 v.visit_ex(c, &mut self.annotation)?;
1194 self.type_hint.accept(c, v)?;
1195 self.is_variadic.accept(c, v)?;
1196 self.pos.accept(c, v)?;
1197 self.name.accept(c, v)?;
1198 self.expr.accept(c, v)?;
1199 self.readonly.accept(c, v)?;
1200 self.callconv.accept(c, v)?;
1201 self.user_attributes.accept(c, v)?;
1202 self.visibility.accept(c, v)
1205 impl<P: Params> NodeMut<P> for Fun_<P::Ex, P::En> {
1209 v: &mut dyn VisitorMut<'node, Params = P>,
1210 ) -> Result<(), P::Error> {
1211 v.visit_fun_(c, self)
1216 v: &mut dyn VisitorMut<'node, Params = P>,
1217 ) -> Result<(), P::Error> {
1218 self.span.accept(c, v)?;
1219 self.readonly_this.accept(c, v)?;
1220 v.visit_en(c, &mut self.annotation)?;
1221 self.readonly_ret.accept(c, v)?;
1222 self.ret.accept(c, v)?;
1223 self.name.accept(c, v)?;
1224 self.tparams.accept(c, v)?;
1225 self.where_constraints.accept(c, v)?;
1226 self.params.accept(c, v)?;
1227 self.ctxs.accept(c, v)?;
1228 self.unsafe_ctxs.accept(c, v)?;
1229 self.body.accept(c, v)?;
1230 self.fun_kind.accept(c, v)?;
1231 self.user_attributes.accept(c, v)?;
1232 self.external.accept(c, v)?;
1233 self.doc_comment.accept(c, v)
1236 impl<P: Params> NodeMut<P> for FuncBody<P::Ex, P::En> {
1240 v: &mut dyn VisitorMut<'node, Params = P>,
1241 ) -> Result<(), P::Error> {
1242 v.visit_func_body(c, self)
1247 v: &mut dyn VisitorMut<'node, Params = P>,
1248 ) -> Result<(), P::Error> {
1249 self.fb_ast.accept(c, v)
1252 impl<P: Params> NodeMut<P> for FunctionPtrId<P::Ex, P::En> {
1256 v: &mut dyn VisitorMut<'node, Params = P>,
1257 ) -> Result<(), P::Error> {
1258 v.visit_function_ptr_id(c, self)
1263 v: &mut dyn VisitorMut<'node, Params = P>,
1264 ) -> Result<(), P::Error> {
1266 FunctionPtrId::FPId(a0) => a0.accept(c, v),
1267 FunctionPtrId::FPClassConst(a0, a1) => {
1274 impl<P: Params> NodeMut<P> for Gconst<P::Ex, P::En> {
1278 v: &mut dyn VisitorMut<'node, Params = P>,
1279 ) -> Result<(), P::Error> {
1280 v.visit_gconst(c, self)
1285 v: &mut dyn VisitorMut<'node, Params = P>,
1286 ) -> Result<(), P::Error> {
1287 v.visit_en(c, &mut self.annotation)?;
1288 self.mode.accept(c, v)?;
1289 self.name.accept(c, v)?;
1290 self.type_.accept(c, v)?;
1291 self.value.accept(c, v)?;
1292 self.namespace.accept(c, v)?;
1293 self.span.accept(c, v)?;
1294 self.emit_id.accept(c, v)
1297 impl<P: Params> NodeMut<P> for HfParamInfo {
1301 v: &mut dyn VisitorMut<'node, Params = P>,
1302 ) -> Result<(), P::Error> {
1303 v.visit_hf_param_info(c, self)
1308 v: &mut dyn VisitorMut<'node, Params = P>,
1309 ) -> Result<(), P::Error> {
1310 self.kind.accept(c, v)?;
1311 self.readonlyness.accept(c, v)
1314 impl<P: Params> NodeMut<P> for Hint {
1318 v: &mut dyn VisitorMut<'node, Params = P>,
1319 ) -> Result<(), P::Error> {
1320 v.visit_hint(c, self)
1325 v: &mut dyn VisitorMut<'node, Params = P>,
1326 ) -> Result<(), P::Error> {
1327 self.0.accept(c, v)?;
1331 impl<P: Params> NodeMut<P> for HintFun {
1335 v: &mut dyn VisitorMut<'node, Params = P>,
1336 ) -> Result<(), P::Error> {
1337 v.visit_hint_fun(c, self)
1342 v: &mut dyn VisitorMut<'node, Params = P>,
1343 ) -> Result<(), P::Error> {
1344 self.is_readonly.accept(c, v)?;
1345 self.param_tys.accept(c, v)?;
1346 self.param_info.accept(c, v)?;
1347 self.variadic_ty.accept(c, v)?;
1348 self.ctxs.accept(c, v)?;
1349 self.return_ty.accept(c, v)?;
1350 self.is_readonly_return.accept(c, v)
1353 impl<P: Params> NodeMut<P> for Hint_ {
1357 v: &mut dyn VisitorMut<'node, Params = P>,
1358 ) -> Result<(), P::Error> {
1359 v.visit_hint_(c, self)
1364 v: &mut dyn VisitorMut<'node, Params = P>,
1365 ) -> Result<(), P::Error> {
1367 Hint_::Hoption(a0) => a0.accept(c, v),
1368 Hint_::Hlike(a0) => a0.accept(c, v),
1369 Hint_::Hfun(a0) => a0.accept(c, v),
1370 Hint_::Htuple(a0) => a0.accept(c, v),
1371 Hint_::Happly(a0, a1) => {
1375 Hint_::Hshape(a0) => a0.accept(c, v),
1376 Hint_::Haccess(a0, a1) => {
1380 Hint_::Hsoft(a0) => a0.accept(c, v),
1381 Hint_::Hany => Ok(()),
1382 Hint_::Herr => Ok(()),
1383 Hint_::Hmixed => Ok(()),
1384 Hint_::Hnonnull => Ok(()),
1385 Hint_::Habstr(a0, a1) => {
1389 Hint_::HvecOrDict(a0, a1) => {
1393 Hint_::Hprim(a0) => a0.accept(c, v),
1394 Hint_::Hthis => Ok(()),
1395 Hint_::Hdynamic => Ok(()),
1396 Hint_::Hnothing => Ok(()),
1397 Hint_::Hunion(a0) => a0.accept(c, v),
1398 Hint_::Hintersection(a0) => a0.accept(c, v),
1399 Hint_::HfunContext(a0) => a0.accept(c, v),
1400 Hint_::Hvar(a0) => a0.accept(c, v),
1404 impl<P: Params> NodeMut<P> for HoleSource {
1408 v: &mut dyn VisitorMut<'node, Params = P>,
1409 ) -> Result<(), P::Error> {
1410 v.visit_hole_source(c, self)
1415 v: &mut dyn VisitorMut<'node, Params = P>,
1416 ) -> Result<(), P::Error> {
1418 HoleSource::Typing => Ok(()),
1419 HoleSource::UnsafeCast(a0) => a0.accept(c, v),
1420 HoleSource::EnforcedCast(a0) => a0.accept(c, v),
1424 impl<P: Params> NodeMut<P> for Id {
1428 v: &mut dyn VisitorMut<'node, Params = P>,
1429 ) -> Result<(), P::Error> {
1435 v: &mut dyn VisitorMut<'node, Params = P>,
1436 ) -> Result<(), P::Error> {
1437 self.0.accept(c, v)?;
1441 impl<P: Params> NodeMut<P> for ImportFlavor {
1445 v: &mut dyn VisitorMut<'node, Params = P>,
1446 ) -> Result<(), P::Error> {
1447 v.visit_import_flavor(c, self)
1452 v: &mut dyn VisitorMut<'node, Params = P>,
1453 ) -> Result<(), P::Error> {
1455 ImportFlavor::Include => Ok(()),
1456 ImportFlavor::Require => Ok(()),
1457 ImportFlavor::IncludeOnce => Ok(()),
1458 ImportFlavor::RequireOnce => Ok(()),
1462 impl<P: Params> NodeMut<P> for KvcKind {
1466 v: &mut dyn VisitorMut<'node, Params = P>,
1467 ) -> Result<(), P::Error> {
1468 v.visit_kvc_kind(c, self)
1473 v: &mut dyn VisitorMut<'node, Params = P>,
1474 ) -> Result<(), P::Error> {
1476 KvcKind::Map => Ok(()),
1477 KvcKind::ImmMap => Ok(()),
1478 KvcKind::Dict => Ok(()),
1482 impl<P: Params> NodeMut<P> for Lid {
1486 v: &mut dyn VisitorMut<'node, Params = P>,
1487 ) -> Result<(), P::Error> {
1488 v.visit_lid(c, self)
1493 v: &mut dyn VisitorMut<'node, Params = P>,
1494 ) -> Result<(), P::Error> {
1495 self.0.accept(c, v)?;
1499 impl<P: Params> NodeMut<P> for Method_<P::Ex, P::En> {
1503 v: &mut dyn VisitorMut<'node, Params = P>,
1504 ) -> Result<(), P::Error> {
1505 v.visit_method_(c, self)
1510 v: &mut dyn VisitorMut<'node, Params = P>,
1511 ) -> Result<(), P::Error> {
1512 self.span.accept(c, v)?;
1513 v.visit_en(c, &mut self.annotation)?;
1514 self.final_.accept(c, v)?;
1515 self.abstract_.accept(c, v)?;
1516 self.static_.accept(c, v)?;
1517 self.readonly_this.accept(c, v)?;
1518 self.visibility.accept(c, v)?;
1519 self.name.accept(c, v)?;
1520 self.tparams.accept(c, v)?;
1521 self.where_constraints.accept(c, v)?;
1522 self.params.accept(c, v)?;
1523 self.ctxs.accept(c, v)?;
1524 self.unsafe_ctxs.accept(c, v)?;
1525 self.body.accept(c, v)?;
1526 self.fun_kind.accept(c, v)?;
1527 self.user_attributes.accept(c, v)?;
1528 self.readonly_ret.accept(c, v)?;
1529 self.ret.accept(c, v)?;
1530 self.external.accept(c, v)?;
1531 self.doc_comment.accept(c, v)
1534 impl<P: Params> NodeMut<P> for ModuleDef<P::Ex, P::En> {
1538 v: &mut dyn VisitorMut<'node, Params = P>,
1539 ) -> Result<(), P::Error> {
1540 v.visit_module_def(c, self)
1545 v: &mut dyn VisitorMut<'node, Params = P>,
1546 ) -> Result<(), P::Error> {
1547 v.visit_en(c, &mut self.annotation)?;
1548 self.name.accept(c, v)?;
1549 self.user_attributes.accept(c, v)?;
1550 self.span.accept(c, v)?;
1551 self.mode.accept(c, v)
1554 impl<P: Params> NodeMut<P> for NastShapeInfo {
1558 v: &mut dyn VisitorMut<'node, Params = P>,
1559 ) -> Result<(), P::Error> {
1560 v.visit_nast_shape_info(c, self)
1565 v: &mut dyn VisitorMut<'node, Params = P>,
1566 ) -> Result<(), P::Error> {
1567 self.allows_unknown_fields.accept(c, v)?;
1568 self.field_map.accept(c, v)
1571 impl<P: Params> NodeMut<P> for NsKind {
1575 v: &mut dyn VisitorMut<'node, Params = P>,
1576 ) -> Result<(), P::Error> {
1577 v.visit_ns_kind(c, self)
1582 v: &mut dyn VisitorMut<'node, Params = P>,
1583 ) -> Result<(), P::Error> {
1585 NsKind::NSNamespace => Ok(()),
1586 NsKind::NSClass => Ok(()),
1587 NsKind::NSClassAndNamespace => Ok(()),
1588 NsKind::NSFun => Ok(()),
1589 NsKind::NSConst => Ok(()),
1593 impl<P: Params> NodeMut<P> for OgNullFlavor {
1597 v: &mut dyn VisitorMut<'node, Params = P>,
1598 ) -> Result<(), P::Error> {
1599 v.visit_og_null_flavor(c, self)
1604 v: &mut dyn VisitorMut<'node, Params = P>,
1605 ) -> Result<(), P::Error> {
1607 OgNullFlavor::OGNullthrows => Ok(()),
1608 OgNullFlavor::OGNullsafe => Ok(()),
1612 impl<P: Params> NodeMut<P> for ParamKind {
1616 v: &mut dyn VisitorMut<'node, Params = P>,
1617 ) -> Result<(), P::Error> {
1618 v.visit_param_kind(c, self)
1623 v: &mut dyn VisitorMut<'node, Params = P>,
1624 ) -> Result<(), P::Error> {
1626 ParamKind::Pinout(a0) => a0.accept(c, v),
1627 ParamKind::Pnormal => Ok(()),
1631 impl<P: Params> NodeMut<P> for Program<P::Ex, P::En> {
1635 v: &mut dyn VisitorMut<'node, Params = P>,
1636 ) -> Result<(), P::Error> {
1637 v.visit_program(c, self)
1642 v: &mut dyn VisitorMut<'node, Params = P>,
1643 ) -> Result<(), P::Error> {
1647 impl<P: Params> NodeMut<P> for PropOrMethod {
1651 v: &mut dyn VisitorMut<'node, Params = P>,
1652 ) -> Result<(), P::Error> {
1653 v.visit_prop_or_method(c, self)
1658 v: &mut dyn VisitorMut<'node, Params = P>,
1659 ) -> Result<(), P::Error> {
1661 PropOrMethod::IsProp => Ok(()),
1662 PropOrMethod::IsMethod => Ok(()),
1666 impl<P: Params> NodeMut<P> for ReadonlyKind {
1670 v: &mut dyn VisitorMut<'node, Params = P>,
1671 ) -> Result<(), P::Error> {
1672 v.visit_readonly_kind(c, self)
1677 v: &mut dyn VisitorMut<'node, Params = P>,
1678 ) -> Result<(), P::Error> {
1680 ReadonlyKind::Readonly => Ok(()),
1684 impl<P: Params> NodeMut<P> for ReifyKind {
1688 v: &mut dyn VisitorMut<'node, Params = P>,
1689 ) -> Result<(), P::Error> {
1690 v.visit_reify_kind(c, self)
1695 v: &mut dyn VisitorMut<'node, Params = P>,
1696 ) -> Result<(), P::Error> {
1698 ReifyKind::Erased => Ok(()),
1699 ReifyKind::SoftReified => Ok(()),
1700 ReifyKind::Reified => Ok(()),
1704 impl<P: Params> NodeMut<P> for RequireKind {
1708 v: &mut dyn VisitorMut<'node, Params = P>,
1709 ) -> Result<(), P::Error> {
1710 v.visit_require_kind(c, self)
1715 v: &mut dyn VisitorMut<'node, Params = P>,
1716 ) -> Result<(), P::Error> {
1718 RequireKind::RequireExtends => Ok(()),
1719 RequireKind::RequireImplements => Ok(()),
1720 RequireKind::RequireClass => Ok(()),
1724 impl<P: Params> NodeMut<P> for ShapeFieldInfo {
1728 v: &mut dyn VisitorMut<'node, Params = P>,
1729 ) -> Result<(), P::Error> {
1730 v.visit_shape_field_info(c, self)
1735 v: &mut dyn VisitorMut<'node, Params = P>,
1736 ) -> Result<(), P::Error> {
1737 self.optional.accept(c, v)?;
1738 self.hint.accept(c, v)?;
1739 self.name.accept(c, v)
1742 impl<P: Params> NodeMut<P> for ShapeFieldName {
1746 v: &mut dyn VisitorMut<'node, Params = P>,
1747 ) -> Result<(), P::Error> {
1748 v.visit_shape_field_name(c, self)
1753 v: &mut dyn VisitorMut<'node, Params = P>,
1754 ) -> Result<(), P::Error> {
1756 ShapeFieldName::SFlitInt(a0) => a0.accept(c, v),
1757 ShapeFieldName::SFlitStr(a0) => a0.accept(c, v),
1758 ShapeFieldName::SFclassConst(a0, a1) => {
1765 impl<P: Params> NodeMut<P> for Stmt<P::Ex, P::En> {
1769 v: &mut dyn VisitorMut<'node, Params = P>,
1770 ) -> Result<(), P::Error> {
1771 v.visit_stmt(c, self)
1776 v: &mut dyn VisitorMut<'node, Params = P>,
1777 ) -> Result<(), P::Error> {
1778 self.0.accept(c, v)?;
1782 impl<P: Params> NodeMut<P> for Stmt_<P::Ex, P::En> {
1786 v: &mut dyn VisitorMut<'node, Params = P>,
1787 ) -> Result<(), P::Error> {
1788 v.visit_stmt_(c, self)
1793 v: &mut dyn VisitorMut<'node, Params = P>,
1794 ) -> Result<(), P::Error> {
1796 fn helper0<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1797 a: &'node mut Box<(Vec<(Option<Lid>, Expr<Ex, En>)>, Block<Ex, En>)>,
1799 v: &mut dyn VisitorMut<'node, Params = P>,
1800 ) -> Result<(), P::Error> {
1805 fn helper1<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1806 a: &'node mut Box<(Expr<Ex, En>, Block<Ex, En>, Block<Ex, En>)>,
1808 v: &mut dyn VisitorMut<'node, Params = P>,
1809 ) -> Result<(), P::Error> {
1815 fn helper2<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1816 a: &'node mut Box<(Block<Ex, En>, Expr<Ex, En>)>,
1818 v: &mut dyn VisitorMut<'node, Params = P>,
1819 ) -> Result<(), P::Error> {
1824 fn helper3<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1825 a: &'node mut Box<(Expr<Ex, En>, Block<Ex, En>)>,
1827 v: &mut dyn VisitorMut<'node, Params = P>,
1828 ) -> Result<(), P::Error> {
1833 fn helper4<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1836 Option<Expr<Ex, En>>,
1841 v: &mut dyn VisitorMut<'node, Params = P>,
1842 ) -> Result<(), P::Error> {
1849 fn helper5<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1850 a: &'node mut Box<(Expr<Ex, En>, Vec<Case<Ex, En>>, Option<DefaultCase<Ex, En>>)>,
1852 v: &mut dyn VisitorMut<'node, Params = P>,
1853 ) -> Result<(), P::Error> {
1859 fn helper6<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1860 a: &'node mut Box<(Expr<Ex, En>, AsExpr<Ex, En>, Block<Ex, En>)>,
1862 v: &mut dyn VisitorMut<'node, Params = P>,
1863 ) -> Result<(), P::Error> {
1869 fn helper7<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1870 a: &'node mut Box<(Block<Ex, En>, Vec<Catch<Ex, En>>, Block<Ex, En>)>,
1872 v: &mut dyn VisitorMut<'node, Params = P>,
1873 ) -> Result<(), P::Error> {
1879 fn helper8<'node, P: Params + Params<Ex = Ex> + Params<En = En>, Ex, En>(
1880 a: &'node mut Box<(EnvAnnot, LocalIdMap<(Pos, Ex)>)>,
1882 v: &mut dyn VisitorMut<'node, Params = P>,
1883 ) -> Result<(), P::Error> {
1888 Stmt_::Fallthrough => Ok(()),
1889 Stmt_::Expr(a0) => a0.accept(c, v),
1890 Stmt_::Break => Ok(()),
1891 Stmt_::Continue => Ok(()),
1892 Stmt_::Throw(a0) => a0.accept(c, v),
1893 Stmt_::Return(a0) => a0.accept(c, v),
1894 Stmt_::YieldBreak => Ok(()),
1895 Stmt_::Awaitall(a) => helper0(a, c, v),
1896 Stmt_::If(a) => helper1(a, c, v),
1897 Stmt_::Do(a) => helper2(a, c, v),
1898 Stmt_::While(a) => helper3(a, c, v),
1899 Stmt_::Using(a0) => a0.accept(c, v),
1900 Stmt_::For(a) => helper4(a, c, v),
1901 Stmt_::Switch(a) => helper5(a, c, v),
1902 Stmt_::Foreach(a) => helper6(a, c, v),
1903 Stmt_::Try(a) => helper7(a, c, v),
1904 Stmt_::Noop => Ok(()),
1905 Stmt_::Block(a0) => a0.accept(c, v),
1906 Stmt_::Markup(a0) => a0.accept(c, v),
1907 Stmt_::AssertEnv(a) => helper8(a, c, v),
1911 impl<P: Params> NodeMut<P> for Targ<P::Ex> {
1915 v: &mut dyn VisitorMut<'node, Params = P>,
1916 ) -> Result<(), P::Error> {
1917 v.visit_targ(c, self)
1922 v: &mut dyn VisitorMut<'node, Params = P>,
1923 ) -> Result<(), P::Error> {
1924 v.visit_ex(c, &mut self.0)?;
1928 impl<P: Params> NodeMut<P> for Tparam<P::Ex, P::En> {
1932 v: &mut dyn VisitorMut<'node, Params = P>,
1933 ) -> Result<(), P::Error> {
1934 v.visit_tparam(c, self)
1939 v: &mut dyn VisitorMut<'node, Params = P>,
1940 ) -> Result<(), P::Error> {
1941 self.variance.accept(c, v)?;
1942 self.name.accept(c, v)?;
1943 self.parameters.accept(c, v)?;
1944 self.constraints.accept(c, v)?;
1945 self.reified.accept(c, v)?;
1946 self.user_attributes.accept(c, v)
1949 impl<P: Params> NodeMut<P> for Tprim {
1953 v: &mut dyn VisitorMut<'node, Params = P>,
1954 ) -> Result<(), P::Error> {
1955 v.visit_tprim(c, self)
1960 v: &mut dyn VisitorMut<'node, Params = P>,
1961 ) -> Result<(), P::Error> {
1963 Tprim::Tnull => Ok(()),
1964 Tprim::Tvoid => Ok(()),
1965 Tprim::Tint => Ok(()),
1966 Tprim::Tbool => Ok(()),
1967 Tprim::Tfloat => Ok(()),
1968 Tprim::Tstring => Ok(()),
1969 Tprim::Tresource => Ok(()),
1970 Tprim::Tnum => Ok(()),
1971 Tprim::Tarraykey => Ok(()),
1972 Tprim::Tnoreturn => Ok(()),
1976 impl<P: Params> NodeMut<P> for TypeHint<P::Ex> {
1980 v: &mut dyn VisitorMut<'node, Params = P>,
1981 ) -> Result<(), P::Error> {
1982 v.visit_type_hint(c, self)
1987 v: &mut dyn VisitorMut<'node, Params = P>,
1988 ) -> Result<(), P::Error> {
1989 v.visit_ex(c, &mut self.0)?;
1993 impl<P: Params> NodeMut<P> for Typedef<P::Ex, P::En> {
1997 v: &mut dyn VisitorMut<'node, Params = P>,
1998 ) -> Result<(), P::Error> {
1999 v.visit_typedef(c, self)
2004 v: &mut dyn VisitorMut<'node, Params = P>,
2005 ) -> Result<(), P::Error> {
2006 v.visit_en(c, &mut self.annotation)?;
2007 self.name.accept(c, v)?;
2008 self.tparams.accept(c, v)?;
2009 self.constraint.accept(c, v)?;
2010 self.kind.accept(c, v)?;
2011 self.user_attributes.accept(c, v)?;
2012 self.file_attributes.accept(c, v)?;
2013 self.mode.accept(c, v)?;
2014 self.vis.accept(c, v)?;
2015 self.namespace.accept(c, v)?;
2016 self.span.accept(c, v)?;
2017 self.emit_id.accept(c, v)?;
2018 self.is_ctx.accept(c, v)?;
2019 self.internal.accept(c, v)?;
2020 self.module.accept(c, v)
2023 impl<P: Params> NodeMut<P> for TypedefVisibility {
2027 v: &mut dyn VisitorMut<'node, Params = P>,
2028 ) -> Result<(), P::Error> {
2029 v.visit_typedef_visibility(c, self)
2034 v: &mut dyn VisitorMut<'node, Params = P>,
2035 ) -> Result<(), P::Error> {
2037 TypedefVisibility::Transparent => Ok(()),
2038 TypedefVisibility::Opaque => Ok(()),
2039 TypedefVisibility::Tinternal => Ok(()),
2043 impl<P: Params> NodeMut<P> for Uop {
2047 v: &mut dyn VisitorMut<'node, Params = P>,
2048 ) -> Result<(), P::Error> {
2049 v.visit_uop(c, self)
2054 v: &mut dyn VisitorMut<'node, Params = P>,
2055 ) -> Result<(), P::Error> {
2057 Uop::Utild => Ok(()),
2058 Uop::Unot => Ok(()),
2059 Uop::Uplus => Ok(()),
2060 Uop::Uminus => Ok(()),
2061 Uop::Uincr => Ok(()),
2062 Uop::Udecr => Ok(()),
2063 Uop::Upincr => Ok(()),
2064 Uop::Updecr => Ok(()),
2065 Uop::Usilence => Ok(()),
2069 impl<P: Params> NodeMut<P> for UserAttribute<P::Ex, P::En> {
2073 v: &mut dyn VisitorMut<'node, Params = P>,
2074 ) -> Result<(), P::Error> {
2075 v.visit_user_attribute(c, self)
2080 v: &mut dyn VisitorMut<'node, Params = P>,
2081 ) -> Result<(), P::Error> {
2082 self.name.accept(c, v)?;
2083 self.params.accept(c, v)
2086 impl<P: Params> NodeMut<P> for UsingStmt<P::Ex, P::En> {
2090 v: &mut dyn VisitorMut<'node, Params = P>,
2091 ) -> Result<(), P::Error> {
2092 v.visit_using_stmt(c, self)
2097 v: &mut dyn VisitorMut<'node, Params = P>,
2098 ) -> Result<(), P::Error> {
2099 self.is_block_scoped.accept(c, v)?;
2100 self.has_await.accept(c, v)?;
2101 self.exprs.accept(c, v)?;
2102 self.block.accept(c, v)
2105 impl<P: Params> NodeMut<P> for Variance {
2109 v: &mut dyn VisitorMut<'node, Params = P>,
2110 ) -> Result<(), P::Error> {
2111 v.visit_variance(c, self)
2116 v: &mut dyn VisitorMut<'node, Params = P>,
2117 ) -> Result<(), P::Error> {
2119 Variance::Covariant => Ok(()),
2120 Variance::Contravariant => Ok(()),
2121 Variance::Invariant => Ok(()),
2125 impl<P: Params> NodeMut<P> for VcKind {
2129 v: &mut dyn VisitorMut<'node, Params = P>,
2130 ) -> Result<(), P::Error> {
2131 v.visit_vc_kind(c, self)
2136 v: &mut dyn VisitorMut<'node, Params = P>,
2137 ) -> Result<(), P::Error> {
2139 VcKind::Vector => Ok(()),
2140 VcKind::ImmVector => Ok(()),
2141 VcKind::Vec => Ok(()),
2142 VcKind::Set => Ok(()),
2143 VcKind::ImmSet => Ok(()),
2144 VcKind::Keyset => Ok(()),
2148 impl<P: Params> NodeMut<P> for Visibility {
2152 v: &mut dyn VisitorMut<'node, Params = P>,
2153 ) -> Result<(), P::Error> {
2154 v.visit_visibility(c, self)
2159 v: &mut dyn VisitorMut<'node, Params = P>,
2160 ) -> Result<(), P::Error> {
2162 Visibility::Private => Ok(()),
2163 Visibility::Public => Ok(()),
2164 Visibility::Protected => Ok(()),
2165 Visibility::Internal => Ok(()),
2169 impl<P: Params> NodeMut<P> for WhereConstraintHint {
2173 v: &mut dyn VisitorMut<'node, Params = P>,
2174 ) -> Result<(), P::Error> {
2175 v.visit_where_constraint_hint(c, self)
2180 v: &mut dyn VisitorMut<'node, Params = P>,
2181 ) -> Result<(), P::Error> {
2182 self.0.accept(c, v)?;
2183 self.1.accept(c, v)?;
2187 impl<P: Params> NodeMut<P> for XhpAttr<P::Ex, P::En> {
2191 v: &mut dyn VisitorMut<'node, Params = P>,
2192 ) -> Result<(), P::Error> {
2193 v.visit_xhp_attr(c, self)
2198 v: &mut dyn VisitorMut<'node, Params = P>,
2199 ) -> Result<(), P::Error> {
2200 self.0.accept(c, v)?;
2201 self.1.accept(c, v)?;
2202 self.2.accept(c, v)?;
2206 impl<P: Params> NodeMut<P> for XhpAttrInfo {
2210 v: &mut dyn VisitorMut<'node, Params = P>,
2211 ) -> Result<(), P::Error> {
2212 v.visit_xhp_attr_info(c, self)
2217 v: &mut dyn VisitorMut<'node, Params = P>,
2218 ) -> Result<(), P::Error> {
2219 self.like.accept(c, v)?;
2220 self.tag.accept(c, v)?;
2221 self.enum_values.accept(c, v)
2224 impl<P: Params> NodeMut<P> for XhpAttrTag {
2228 v: &mut dyn VisitorMut<'node, Params = P>,
2229 ) -> Result<(), P::Error> {
2230 v.visit_xhp_attr_tag(c, self)
2235 v: &mut dyn VisitorMut<'node, Params = P>,
2236 ) -> Result<(), P::Error> {
2238 XhpAttrTag::Required => Ok(()),
2239 XhpAttrTag::LateInit => Ok(()),
2243 impl<P: Params> NodeMut<P> for XhpAttribute<P::Ex, P::En> {
2247 v: &mut dyn VisitorMut<'node, Params = P>,
2248 ) -> Result<(), P::Error> {
2249 v.visit_xhp_attribute(c, self)
2254 v: &mut dyn VisitorMut<'node, Params = P>,
2255 ) -> Result<(), P::Error> {
2257 XhpAttribute::XhpSimple(a0) => a0.accept(c, v),
2258 XhpAttribute::XhpSpread(a0) => a0.accept(c, v),
2262 impl<P: Params> NodeMut<P> for XhpChild {
2266 v: &mut dyn VisitorMut<'node, Params = P>,
2267 ) -> Result<(), P::Error> {
2268 v.visit_xhp_child(c, self)
2273 v: &mut dyn VisitorMut<'node, Params = P>,
2274 ) -> Result<(), P::Error> {
2276 XhpChild::ChildName(a0) => a0.accept(c, v),
2277 XhpChild::ChildList(a0) => a0.accept(c, v),
2278 XhpChild::ChildUnary(a0, a1) => {
2282 XhpChild::ChildBinary(a0, a1) => {
2289 impl<P: Params> NodeMut<P> for XhpChildOp {
2293 v: &mut dyn VisitorMut<'node, Params = P>,
2294 ) -> Result<(), P::Error> {
2295 v.visit_xhp_child_op(c, self)
2300 v: &mut dyn VisitorMut<'node, Params = P>,
2301 ) -> Result<(), P::Error> {
2303 XhpChildOp::ChildStar => Ok(()),
2304 XhpChildOp::ChildPlus => Ok(()),
2305 XhpChildOp::ChildQuestion => Ok(()),
2309 impl<P: Params> NodeMut<P> for XhpEnumValue {
2313 v: &mut dyn VisitorMut<'node, Params = P>,
2314 ) -> Result<(), P::Error> {
2315 v.visit_xhp_enum_value(c, self)
2320 v: &mut dyn VisitorMut<'node, Params = P>,
2321 ) -> Result<(), P::Error> {
2323 XhpEnumValue::XEVInt(a0) => a0.accept(c, v),
2324 XhpEnumValue::XEVString(a0) => a0.accept(c, v),
2328 impl<P: Params> NodeMut<P> for XhpSimple<P::Ex, P::En> {
2332 v: &mut dyn VisitorMut<'node, Params = P>,
2333 ) -> Result<(), P::Error> {
2334 v.visit_xhp_simple(c, self)
2339 v: &mut dyn VisitorMut<'node, Params = P>,
2340 ) -> Result<(), P::Error> {
2341 self.name.accept(c, v)?;
2342 v.visit_ex(c, &mut self.type_)?;
2343 self.expr.accept(c, v)