in codegen/syntax/ClassnameTypeSpecifier.hack [121:153]
public function rewriteChildren<Tret as ?Node>(
(function(Node, vec<Node>): Tret) $rewriter,
vec<Node> $parents = vec[],
): this {
$parents[] = $this;
$keyword = $rewriter($this->_keyword, $parents);
$left_angle = $this->_left_angle === null
? null
: $rewriter($this->_left_angle, $parents);
$type = $this->_type === null ? null : $rewriter($this->_type, $parents);
$trailing_comma = $this->_trailing_comma === null
? null
: $rewriter($this->_trailing_comma, $parents);
$right_angle = $this->_right_angle === null
? null
: $rewriter($this->_right_angle, $parents);
if (
$keyword === $this->_keyword &&
$left_angle === $this->_left_angle &&
$type === $this->_type &&
$trailing_comma === $this->_trailing_comma &&
$right_angle === $this->_right_angle
) {
return $this;
}
return new static(
$keyword as ClassnameToken,
$left_angle as ?LessThanToken,
$type as ?ITypeSpecifier,
$trailing_comma as ?Node,
$right_angle as ?GreaterThanToken,
);
}