private function renderHead() { if ($this->no_op) { return $this->head; } $this->parseDocblock(); $arglist = new ArgumentList($this->param_types); $in_args = false; $out = []; foreach ($this->head as $token) { if ($token->is('(')) { $in_args = true; $out[] = $token; continue; } elseif ($token->is(')')) { $out = array_merge($out, $arglist->getTokens()); $in_args = false; $out[] = $token; $out[] = $this->buildReturnType(); continue; } if ($in_args) { $arglist->addToken($token); } else { $out[] = $token; } } return $out; }