private function getFunctionDeclaration()

in src/CodegenMethodish.hack [59:76]


  private function getFunctionDeclaration(): string {

    // $keywords is shared by both single and multi line declaration
    $keywords = (new HackBuilder($this->config))
      ->addIf($this->isFinal && !$this->isAbstract, 'final ')
      ->addIf(
        $this->isAbstract &&
        !($this->containingClass is CodegenInterface),
        'abstract ',
      )
      ->add($this->getVisibility().' ')
      ->addIf($this->isStatic, 'static ')
      ->addIf($this->isAsync && !$this->isAbstract, 'async ')
      ->add('function ')
      ->getCode();

    return $this->getFunctionDeclarationBase($keywords, $this->isAbstract);
  }