in codegen/syntax/ClosureTypeSpecifier.hack [205:256]
public function rewriteChildren<Tret as ?Node>(
(function(Node, vec<Node>): Tret) $rewriter,
vec<Node> $parents = vec[],
): this {
$parents[] = $this;
$outer_left_paren = $rewriter($this->_outer_left_paren, $parents);
$readonly_keyword = $this->_readonly_keyword === null
? null
: $rewriter($this->_readonly_keyword, $parents);
$function_keyword = $rewriter($this->_function_keyword, $parents);
$inner_left_paren = $rewriter($this->_inner_left_paren, $parents);
$parameter_list = $this->_parameter_list === null
? null
: $rewriter($this->_parameter_list, $parents);
$inner_right_paren = $rewriter($this->_inner_right_paren, $parents);
$contexts =
$this->_contexts === null ? null : $rewriter($this->_contexts, $parents);
$colon = $rewriter($this->_colon, $parents);
$readonly_return = $this->_readonly_return === null
? null
: $rewriter($this->_readonly_return, $parents);
$return_type = $rewriter($this->_return_type, $parents);
$outer_right_paren = $rewriter($this->_outer_right_paren, $parents);
if (
$outer_left_paren === $this->_outer_left_paren &&
$readonly_keyword === $this->_readonly_keyword &&
$function_keyword === $this->_function_keyword &&
$inner_left_paren === $this->_inner_left_paren &&
$parameter_list === $this->_parameter_list &&
$inner_right_paren === $this->_inner_right_paren &&
$contexts === $this->_contexts &&
$colon === $this->_colon &&
$readonly_return === $this->_readonly_return &&
$return_type === $this->_return_type &&
$outer_right_paren === $this->_outer_right_paren
) {
return $this;
}
return new static(
$outer_left_paren as LeftParenToken,
$readonly_keyword as ?ReadonlyToken,
$function_keyword as FunctionToken,
$inner_left_paren as LeftParenToken,
/* HH_FIXME[4110] ?NodeList<ListItem<ITypeSpecifier>> may not be enforceable */ $parameter_list,
$inner_right_paren as RightParenToken,
$contexts as ?Contexts,
$colon as ColonToken,
$readonly_return as ?Node,
$return_type as ITypeSpecifier,
$outer_right_paren as RightParenToken,
);
}