in codegen/syntax/EnumClassDeclaration.hack [218:273]
public function rewriteChildren<Tret as ?Node>(
(function(Node, vec<Node>): Tret) $rewriter,
vec<Node> $parents = vec[],
): this {
$parents[] = $this;
$attribute_spec = $this->_attribute_spec === null
? null
: $rewriter($this->_attribute_spec, $parents);
$modifiers = $this->_modifiers === null
? null
: $rewriter($this->_modifiers, $parents);
$enum_keyword = $rewriter($this->_enum_keyword, $parents);
$class_keyword = $rewriter($this->_class_keyword, $parents);
$name = $rewriter($this->_name, $parents);
$colon = $rewriter($this->_colon, $parents);
$base = $rewriter($this->_base, $parents);
$extends =
$this->_extends === null ? null : $rewriter($this->_extends, $parents);
$extends_list = $this->_extends_list === null
? null
: $rewriter($this->_extends_list, $parents);
$left_brace = $rewriter($this->_left_brace, $parents);
$elements =
$this->_elements === null ? null : $rewriter($this->_elements, $parents);
$right_brace = $rewriter($this->_right_brace, $parents);
if (
$attribute_spec === $this->_attribute_spec &&
$modifiers === $this->_modifiers &&
$enum_keyword === $this->_enum_keyword &&
$class_keyword === $this->_class_keyword &&
$name === $this->_name &&
$colon === $this->_colon &&
$base === $this->_base &&
$extends === $this->_extends &&
$extends_list === $this->_extends_list &&
$left_brace === $this->_left_brace &&
$elements === $this->_elements &&
$right_brace === $this->_right_brace
) {
return $this;
}
return new static(
$attribute_spec as ?OldAttributeSpecification,
/* HH_FIXME[4110] ?NodeList<AbstractToken> may not be enforceable */ $modifiers,
$enum_keyword as EnumToken,
$class_keyword as ClassToken,
$name as NameToken,
$colon as ColonToken,
$base as ISimpleCreationSpecifier,
$extends as ?ExtendsToken,
/* HH_FIXME[4110] ?NodeList<ListItem<SimpleTypeSpecifier>> may not be enforceable */ $extends_list,
$left_brace as LeftBraceToken,
/* HH_FIXME[4110] ?NodeList<EnumClassEnumerator> may not be enforceable */ $elements,
$right_brace as RightBraceToken,
);
}