public function rewriteChildren()

in codegen/syntax/ContextConstDeclaration.hack [179:224]


  public function rewriteChildren<Tret as ?Node>(
    (function(Node, vec<Node>): Tret) $rewriter,
    vec<Node> $parents = vec[],
  ): this {
    $parents[] = $this;
    $modifiers = $this->_modifiers === null
      ? null
      : $rewriter($this->_modifiers, $parents);
    $const_keyword = $rewriter($this->_const_keyword, $parents);
    $ctx_keyword = $rewriter($this->_ctx_keyword, $parents);
    $name = $rewriter($this->_name, $parents);
    $type_parameters = $this->_type_parameters === null
      ? null
      : $rewriter($this->_type_parameters, $parents);
    $constraint = $this->_constraint === null
      ? null
      : $rewriter($this->_constraint, $parents);
    $equal = $this->_equal === null ? null : $rewriter($this->_equal, $parents);
    $ctx_list =
      $this->_ctx_list === null ? null : $rewriter($this->_ctx_list, $parents);
    $semicolon = $rewriter($this->_semicolon, $parents);
    if (
      $modifiers === $this->_modifiers &&
      $const_keyword === $this->_const_keyword &&
      $ctx_keyword === $this->_ctx_keyword &&
      $name === $this->_name &&
      $type_parameters === $this->_type_parameters &&
      $constraint === $this->_constraint &&
      $equal === $this->_equal &&
      $ctx_list === $this->_ctx_list &&
      $semicolon === $this->_semicolon
    ) {
      return $this;
    }
    return new static(
      /* HH_FIXME[4110] ?NodeList<AbstractToken> may not be enforceable */ $modifiers,
      $const_keyword as ConstToken,
      $ctx_keyword as CtxToken,
      $name as NameToken,
      $type_parameters as ?Node,
      /* HH_FIXME[4110] ?NodeList<ContextConstraint> may not be enforceable */ $constraint,
      $equal as ?EqualToken,
      $ctx_list as ?Contexts,
      $semicolon as SemicolonToken,
    );
  }