public function rewriteChildren()

in codegen/syntax/FunctionCallExpression.hack [138:173]


  public function rewriteChildren<Tret as ?Node>(
    (function(Node, vec<Node>): Tret) $rewriter,
    vec<Node> $parents = vec[],
  ): this {
    $parents[] = $this;
    $receiver = $rewriter($this->_receiver, $parents);
    $type_args = $this->_type_args === null
      ? null
      : $rewriter($this->_type_args, $parents);
    $enum_class_label = $this->_enum_class_label === null
      ? null
      : $rewriter($this->_enum_class_label, $parents);
    $left_paren = $rewriter($this->_left_paren, $parents);
    $argument_list = $this->_argument_list === null
      ? null
      : $rewriter($this->_argument_list, $parents);
    $right_paren = $rewriter($this->_right_paren, $parents);
    if (
      $receiver === $this->_receiver &&
      $type_args === $this->_type_args &&
      $enum_class_label === $this->_enum_class_label &&
      $left_paren === $this->_left_paren &&
      $argument_list === $this->_argument_list &&
      $right_paren === $this->_right_paren
    ) {
      return $this;
    }
    return new static(
      $receiver as Node,
      $type_args as ?TypeArguments,
      $enum_class_label as ?EnumClassLabelExpression,
      $left_paren as LeftParenToken,
      /* HH_FIXME[4110] ?NodeList<ListItem<IExpression>> may not be enforceable */ $argument_list,
      $right_paren as RightParenToken,
    );
  }