public function rewriteChildren()

in codegen/syntax/MethodishTraitResolution.hack [126:158]


  public function rewriteChildren<Tret as ?Node>(
    (function(Node, vec<Node>): Tret) $rewriter,
    vec<Node> $parents = vec[],
  ): this {
    $parents[] = $this;
    $attribute = $this->_attribute === null
      ? null
      : $rewriter($this->_attribute, $parents);
    $function_decl_header = $this->_function_decl_header === null
      ? null
      : $rewriter($this->_function_decl_header, $parents);
    $equal = $this->_equal === null ? null : $rewriter($this->_equal, $parents);
    $name = $this->_name === null ? null : $rewriter($this->_name, $parents);
    $semicolon = $this->_semicolon === null
      ? null
      : $rewriter($this->_semicolon, $parents);
    if (
      $attribute === $this->_attribute &&
      $function_decl_header === $this->_function_decl_header &&
      $equal === $this->_equal &&
      $name === $this->_name &&
      $semicolon === $this->_semicolon
    ) {
      return $this;
    }
    return new static(
      $attribute as ?Node,
      $function_decl_header as ?Node,
      $equal as ?Node,
      $name as ?Node,
      $semicolon as ?Node,
    );
  }