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<<03157c2f0dc63be231501d1db300f003>>
8 // To regenerate this file, run:
9 // hphp/hack/src/oxidized_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>::En,
36 ) -> Result<(), <Self::P as Params>::Error> {
41 c: &mut <Self::P as Params>::Context,
42 p: &'node mut Abstraction,
43 ) -> Result<(), <Self::P as Params>::Error> {
44 p.recurse(c, self.object())
48 c: &mut <Self::P as Params>::Context,
49 p: &'node mut Afield<<Self::P as Params>::Ex, <Self::P as Params>::En>,
50 ) -> Result<(), <Self::P as Params>::Error> {
51 p.recurse(c, self.object())
55 c: &mut <Self::P as Params>::Context,
56 p: &'node mut AsExpr<<Self::P as Params>::Ex, <Self::P as Params>::En>,
57 ) -> Result<(), <Self::P as Params>::Error> {
58 p.recurse(c, self.object())
62 c: &mut <Self::P as Params>::Context,
64 ) -> Result<(), <Self::P as Params>::Error> {
65 p.recurse(c, self.object())
69 c: &mut <Self::P as Params>::Context,
70 p: &'node mut CaField<<Self::P as Params>::Ex, <Self::P as Params>::En>,
71 ) -> Result<(), <Self::P as Params>::Error> {
72 p.recurse(c, self.object())
76 c: &mut <Self::P as Params>::Context,
78 ) -> Result<(), <Self::P as Params>::Error> {
79 p.recurse(c, self.object())
83 c: &mut <Self::P as Params>::Context,
84 p: &'node mut Case<<Self::P as Params>::Ex, <Self::P as Params>::En>,
85 ) -> Result<(), <Self::P as Params>::Error> {
86 p.recurse(c, self.object())
90 c: &mut <Self::P as Params>::Context,
91 p: &'node mut Catch<<Self::P as Params>::Ex, <Self::P as Params>::En>,
92 ) -> Result<(), <Self::P as Params>::Error> {
93 p.recurse(c, self.object())
95 fn visit_class_abstract_typeconst(
97 c: &mut <Self::P as Params>::Context,
98 p: &'node mut ClassAbstractTypeconst,
99 ) -> Result<(), <Self::P as Params>::Error> {
100 p.recurse(c, self.object())
104 c: &mut <Self::P as Params>::Context,
105 p: &'node mut ClassAttr<<Self::P as Params>::Ex, <Self::P as Params>::En>,
106 ) -> Result<(), <Self::P as Params>::Error> {
107 p.recurse(c, self.object())
109 fn visit_class_concrete_typeconst(
111 c: &mut <Self::P as Params>::Context,
112 p: &'node mut ClassConcreteTypeconst,
113 ) -> Result<(), <Self::P as Params>::Error> {
114 p.recurse(c, self.object())
116 fn visit_class_const(
118 c: &mut <Self::P as Params>::Context,
119 p: &'node mut ClassConst<<Self::P as Params>::Ex, <Self::P as Params>::En>,
120 ) -> Result<(), <Self::P as Params>::Error> {
121 p.recurse(c, self.object())
123 fn visit_class_const_kind(
125 c: &mut <Self::P as Params>::Context,
126 p: &'node mut ClassConstKind<<Self::P as Params>::Ex, <Self::P as Params>::En>,
127 ) -> Result<(), <Self::P as Params>::Error> {
128 p.recurse(c, self.object())
130 fn visit_class_get_expr(
132 c: &mut <Self::P as Params>::Context,
133 p: &'node mut ClassGetExpr<<Self::P as Params>::Ex, <Self::P as Params>::En>,
134 ) -> Result<(), <Self::P as Params>::Error> {
135 p.recurse(c, self.object())
139 c: &mut <Self::P as Params>::Context,
140 p: &'node mut ClassId<<Self::P as Params>::Ex, <Self::P as Params>::En>,
141 ) -> Result<(), <Self::P as Params>::Error> {
142 p.recurse(c, self.object())
146 c: &mut <Self::P as Params>::Context,
147 p: &'node mut ClassId_<<Self::P as Params>::Ex, <Self::P as Params>::En>,
148 ) -> Result<(), <Self::P as Params>::Error> {
149 p.recurse(c, self.object())
151 fn visit_class_typeconst(
153 c: &mut <Self::P as Params>::Context,
154 p: &'node mut ClassTypeconst,
155 ) -> Result<(), <Self::P as Params>::Error> {
156 p.recurse(c, self.object())
158 fn visit_class_typeconst_def(
160 c: &mut <Self::P as Params>::Context,
161 p: &'node mut ClassTypeconstDef<<Self::P as Params>::Ex, <Self::P as Params>::En>,
162 ) -> Result<(), <Self::P as Params>::Error> {
163 p.recurse(c, self.object())
167 c: &mut <Self::P as Params>::Context,
168 p: &'node mut ClassVar<<Self::P as Params>::Ex, <Self::P as Params>::En>,
169 ) -> Result<(), <Self::P as Params>::Error> {
170 p.recurse(c, self.object())
174 c: &mut <Self::P as Params>::Context,
175 p: &'node mut Class_<<Self::P as Params>::Ex, <Self::P as Params>::En>,
176 ) -> Result<(), <Self::P as Params>::Error> {
177 p.recurse(c, self.object())
179 fn visit_classish_kind(
181 c: &mut <Self::P as Params>::Context,
182 p: &'node mut ClassishKind,
183 ) -> Result<(), <Self::P as Params>::Error> {
184 p.recurse(c, self.object())
186 fn visit_collection_targ(
188 c: &mut <Self::P as Params>::Context,
189 p: &'node mut CollectionTarg<<Self::P as Params>::Ex>,
190 ) -> Result<(), <Self::P as Params>::Error> {
191 p.recurse(c, self.object())
193 fn visit_constraint_kind(
195 c: &mut <Self::P as Params>::Context,
196 p: &'node mut ConstraintKind,
197 ) -> Result<(), <Self::P as Params>::Error> {
198 p.recurse(c, self.object())
202 c: &mut <Self::P as Params>::Context,
203 p: &'node mut Contexts,
204 ) -> Result<(), <Self::P as Params>::Error> {
205 p.recurse(c, self.object())
209 c: &mut <Self::P as Params>::Context,
210 p: &'node mut Def<<Self::P as Params>::Ex, <Self::P as Params>::En>,
211 ) -> Result<(), <Self::P as Params>::Error> {
212 p.recurse(c, self.object())
214 fn visit_doc_comment(
216 c: &mut <Self::P as Params>::Context,
217 p: &'node mut DocComment,
218 ) -> Result<(), <Self::P as Params>::Error> {
219 p.recurse(c, self.object())
223 c: &mut <Self::P as Params>::Context,
224 p: &'node mut EmitId,
225 ) -> Result<(), <Self::P as Params>::Error> {
226 p.recurse(c, self.object())
230 c: &mut <Self::P as Params>::Context,
232 ) -> Result<(), <Self::P as Params>::Error> {
233 p.recurse(c, self.object())
237 c: &mut <Self::P as Params>::Context,
238 p: &'node mut EnvAnnot,
239 ) -> Result<(), <Self::P as Params>::Error> {
240 p.recurse(c, self.object())
244 c: &mut <Self::P as Params>::Context,
245 p: &'node mut Expr<<Self::P as Params>::Ex, <Self::P as Params>::En>,
246 ) -> Result<(), <Self::P as Params>::Error> {
247 p.recurse(c, self.object())
251 c: &mut <Self::P as Params>::Context,
252 p: &'node mut Expr_<<Self::P as Params>::Ex, <Self::P as Params>::En>,
253 ) -> Result<(), <Self::P as Params>::Error> {
254 p.recurse(c, self.object())
256 fn visit_expression_tree(
258 c: &mut <Self::P as Params>::Context,
259 p: &'node mut ExpressionTree<<Self::P as Params>::Ex, <Self::P as Params>::En>,
260 ) -> Result<(), <Self::P as Params>::Error> {
261 p.recurse(c, self.object())
265 c: &mut <Self::P as Params>::Context,
266 p: &'node mut Field<<Self::P as Params>::Ex, <Self::P as Params>::En>,
267 ) -> Result<(), <Self::P as Params>::Error> {
268 p.recurse(c, self.object())
270 fn visit_file_attribute(
272 c: &mut <Self::P as Params>::Context,
273 p: &'node mut FileAttribute<<Self::P as Params>::Ex, <Self::P as Params>::En>,
274 ) -> Result<(), <Self::P as Params>::Error> {
275 p.recurse(c, self.object())
279 c: &mut <Self::P as Params>::Context,
280 p: &'node mut FunDef<<Self::P as Params>::Ex, <Self::P as Params>::En>,
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 FunKind,
288 ) -> Result<(), <Self::P as Params>::Error> {
289 p.recurse(c, self.object())
293 c: &mut <Self::P as Params>::Context,
294 p: &'node mut FunParam<<Self::P as Params>::Ex, <Self::P as Params>::En>,
295 ) -> Result<(), <Self::P as Params>::Error> {
296 p.recurse(c, self.object())
298 fn visit_fun_variadicity(
300 c: &mut <Self::P as Params>::Context,
301 p: &'node mut FunVariadicity<<Self::P as Params>::Ex, <Self::P as Params>::En>,
302 ) -> Result<(), <Self::P as Params>::Error> {
303 p.recurse(c, self.object())
307 c: &mut <Self::P as Params>::Context,
308 p: &'node mut Fun_<<Self::P as Params>::Ex, <Self::P as Params>::En>,
309 ) -> Result<(), <Self::P as Params>::Error> {
310 p.recurse(c, self.object())
314 c: &mut <Self::P as Params>::Context,
315 p: &'node mut FuncBody<<Self::P as Params>::Ex, <Self::P as Params>::En>,
316 ) -> Result<(), <Self::P as Params>::Error> {
317 p.recurse(c, self.object())
319 fn visit_function_ptr_id(
321 c: &mut <Self::P as Params>::Context,
322 p: &'node mut FunctionPtrId<<Self::P as Params>::Ex, <Self::P as Params>::En>,
323 ) -> Result<(), <Self::P as Params>::Error> {
324 p.recurse(c, self.object())
328 c: &mut <Self::P as Params>::Context,
329 p: &'node mut Gconst<<Self::P as Params>::Ex, <Self::P as Params>::En>,
330 ) -> Result<(), <Self::P as Params>::Error> {
331 p.recurse(c, self.object())
333 fn visit_hf_param_info(
335 c: &mut <Self::P as Params>::Context,
336 p: &'node mut HfParamInfo,
337 ) -> Result<(), <Self::P as Params>::Error> {
338 p.recurse(c, self.object())
342 c: &mut <Self::P as Params>::Context,
344 ) -> Result<(), <Self::P as Params>::Error> {
345 p.recurse(c, self.object())
349 c: &mut <Self::P as Params>::Context,
350 p: &'node mut HintFun,
351 ) -> Result<(), <Self::P as Params>::Error> {
352 p.recurse(c, self.object())
356 c: &mut <Self::P as Params>::Context,
358 ) -> Result<(), <Self::P as Params>::Error> {
359 p.recurse(c, self.object())
361 fn visit_hole_source(
363 c: &mut <Self::P as Params>::Context,
364 p: &'node mut HoleSource,
365 ) -> Result<(), <Self::P as Params>::Error> {
366 p.recurse(c, self.object())
370 c: &mut <Self::P as Params>::Context,
372 ) -> Result<(), <Self::P as Params>::Error> {
373 p.recurse(c, self.object())
375 fn visit_import_flavor(
377 c: &mut <Self::P as Params>::Context,
378 p: &'node mut ImportFlavor,
379 ) -> Result<(), <Self::P as Params>::Error> {
380 p.recurse(c, self.object())
382 fn visit_insteadof_alias(
384 c: &mut <Self::P as Params>::Context,
385 p: &'node mut InsteadofAlias,
386 ) -> Result<(), <Self::P as Params>::Error> {
387 p.recurse(c, self.object())
391 c: &mut <Self::P as Params>::Context,
392 p: &'node mut KvcKind,
393 ) -> Result<(), <Self::P as Params>::Error> {
394 p.recurse(c, self.object())
398 c: &mut <Self::P as Params>::Context,
400 ) -> Result<(), <Self::P as Params>::Error> {
401 p.recurse(c, self.object())
405 c: &mut <Self::P as Params>::Context,
406 p: &'node mut Method_<<Self::P as Params>::Ex, <Self::P as Params>::En>,
407 ) -> Result<(), <Self::P as Params>::Error> {
408 p.recurse(c, self.object())
410 fn visit_nast_shape_info(
412 c: &mut <Self::P as Params>::Context,
413 p: &'node mut NastShapeInfo,
414 ) -> Result<(), <Self::P as Params>::Error> {
415 p.recurse(c, self.object())
419 c: &mut <Self::P as Params>::Context,
420 p: &'node mut NsKind,
421 ) -> Result<(), <Self::P as Params>::Error> {
422 p.recurse(c, self.object())
424 fn visit_og_null_flavor(
426 c: &mut <Self::P as Params>::Context,
427 p: &'node mut OgNullFlavor,
428 ) -> Result<(), <Self::P as Params>::Error> {
429 p.recurse(c, self.object())
433 c: &mut <Self::P as Params>::Context,
434 p: &'node mut ParamKind,
435 ) -> Result<(), <Self::P as Params>::Error> {
436 p.recurse(c, self.object())
438 fn visit_readonly_kind(
440 c: &mut <Self::P as Params>::Context,
441 p: &'node mut ReadonlyKind,
442 ) -> Result<(), <Self::P as Params>::Error> {
443 p.recurse(c, self.object())
447 c: &mut <Self::P as Params>::Context,
448 p: &'node mut RecordDef<<Self::P as Params>::Ex, <Self::P as Params>::En>,
449 ) -> Result<(), <Self::P as Params>::Error> {
450 p.recurse(c, self.object())
454 c: &mut <Self::P as Params>::Context,
455 p: &'node mut ReifyKind,
456 ) -> Result<(), <Self::P as Params>::Error> {
457 p.recurse(c, self.object())
459 fn visit_shape_field_info(
461 c: &mut <Self::P as Params>::Context,
462 p: &'node mut ShapeFieldInfo,
463 ) -> Result<(), <Self::P as Params>::Error> {
464 p.recurse(c, self.object())
466 fn visit_shape_field_name(
468 c: &mut <Self::P as Params>::Context,
469 p: &'node mut ShapeFieldName,
470 ) -> Result<(), <Self::P as Params>::Error> {
471 p.recurse(c, self.object())
475 c: &mut <Self::P as Params>::Context,
476 p: &'node mut Stmt<<Self::P as Params>::Ex, <Self::P as Params>::En>,
477 ) -> Result<(), <Self::P as Params>::Error> {
478 p.recurse(c, self.object())
482 c: &mut <Self::P as Params>::Context,
483 p: &'node mut Stmt_<<Self::P as Params>::Ex, <Self::P as Params>::En>,
484 ) -> Result<(), <Self::P as Params>::Error> {
485 p.recurse(c, self.object())
489 c: &mut <Self::P as Params>::Context,
490 p: &'node mut Targ<<Self::P as Params>::Ex>,
491 ) -> Result<(), <Self::P as Params>::Error> {
492 p.recurse(c, self.object())
496 c: &mut <Self::P as Params>::Context,
497 p: &'node mut Tparam<<Self::P as Params>::Ex, <Self::P as Params>::En>,
498 ) -> Result<(), <Self::P as Params>::Error> {
499 p.recurse(c, self.object())
503 c: &mut <Self::P as Params>::Context,
505 ) -> Result<(), <Self::P as Params>::Error> {
506 p.recurse(c, self.object())
510 c: &mut <Self::P as Params>::Context,
511 p: &'node mut TypeHint<<Self::P as Params>::Ex>,
512 ) -> Result<(), <Self::P as Params>::Error> {
513 p.recurse(c, self.object())
517 c: &mut <Self::P as Params>::Context,
518 p: &'node mut Typedef<<Self::P as Params>::Ex, <Self::P as Params>::En>,
519 ) -> Result<(), <Self::P as Params>::Error> {
520 p.recurse(c, self.object())
522 fn visit_typedef_visibility(
524 c: &mut <Self::P as Params>::Context,
525 p: &'node mut TypedefVisibility,
526 ) -> Result<(), <Self::P as Params>::Error> {
527 p.recurse(c, self.object())
531 c: &mut <Self::P as Params>::Context,
533 ) -> Result<(), <Self::P as Params>::Error> {
534 p.recurse(c, self.object())
536 fn visit_use_as_alias(
538 c: &mut <Self::P as Params>::Context,
539 p: &'node mut UseAsAlias,
540 ) -> Result<(), <Self::P as Params>::Error> {
541 p.recurse(c, self.object())
543 fn visit_use_as_visibility(
545 c: &mut <Self::P as Params>::Context,
546 p: &'node mut UseAsVisibility,
547 ) -> Result<(), <Self::P as Params>::Error> {
548 p.recurse(c, self.object())
550 fn visit_user_attribute(
552 c: &mut <Self::P as Params>::Context,
553 p: &'node mut UserAttribute<<Self::P as Params>::Ex, <Self::P as Params>::En>,
554 ) -> Result<(), <Self::P as Params>::Error> {
555 p.recurse(c, self.object())
559 c: &mut <Self::P as Params>::Context,
560 p: &'node mut UsingStmt<<Self::P as Params>::Ex, <Self::P as Params>::En>,
561 ) -> Result<(), <Self::P as Params>::Error> {
562 p.recurse(c, self.object())
566 c: &mut <Self::P as Params>::Context,
567 p: &'node mut Variance,
568 ) -> Result<(), <Self::P as Params>::Error> {
569 p.recurse(c, self.object())
573 c: &mut <Self::P as Params>::Context,
574 p: &'node mut VcKind,
575 ) -> Result<(), <Self::P as Params>::Error> {
576 p.recurse(c, self.object())
580 c: &mut <Self::P as Params>::Context,
581 p: &'node mut Visibility,
582 ) -> Result<(), <Self::P as Params>::Error> {
583 p.recurse(c, self.object())
585 fn visit_where_constraint_hint(
587 c: &mut <Self::P as Params>::Context,
588 p: &'node mut WhereConstraintHint,
589 ) -> Result<(), <Self::P as Params>::Error> {
590 p.recurse(c, self.object())
594 c: &mut <Self::P as Params>::Context,
595 p: &'node mut XhpAttr<<Self::P as Params>::Ex, <Self::P as Params>::En>,
596 ) -> Result<(), <Self::P as Params>::Error> {
597 p.recurse(c, self.object())
599 fn visit_xhp_attr_info(
601 c: &mut <Self::P as Params>::Context,
602 p: &'node mut XhpAttrInfo,
603 ) -> Result<(), <Self::P as Params>::Error> {
604 p.recurse(c, self.object())
606 fn visit_xhp_attr_tag(
608 c: &mut <Self::P as Params>::Context,
609 p: &'node mut XhpAttrTag,
610 ) -> Result<(), <Self::P as Params>::Error> {
611 p.recurse(c, self.object())
613 fn visit_xhp_attribute(
615 c: &mut <Self::P as Params>::Context,
616 p: &'node mut XhpAttribute<<Self::P as Params>::Ex, <Self::P as Params>::En>,
617 ) -> Result<(), <Self::P as Params>::Error> {
618 p.recurse(c, self.object())
622 c: &mut <Self::P as Params>::Context,
623 p: &'node mut XhpChild,
624 ) -> Result<(), <Self::P as Params>::Error> {
625 p.recurse(c, self.object())
627 fn visit_xhp_child_op(
629 c: &mut <Self::P as Params>::Context,
630 p: &'node mut XhpChildOp,
631 ) -> Result<(), <Self::P as Params>::Error> {
632 p.recurse(c, self.object())
634 fn visit_xhp_enum_value(
636 c: &mut <Self::P as Params>::Context,
637 p: &'node mut XhpEnumValue,
638 ) -> Result<(), <Self::P as Params>::Error> {
639 p.recurse(c, self.object())
643 c: &mut <Self::P as Params>::Context,
644 p: &'node mut XhpSimple<<Self::P as Params>::Ex, <Self::P as Params>::En>,
645 ) -> Result<(), <Self::P as Params>::Error> {
646 p.recurse(c, self.object())