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);
}