private function setNodeOptionalFlag()
{
$overallOptionalFlag = true;
$lastParamIndex = count($this->node->params) - 1;
for ($i = $lastParamIndex; $i >= 0; $i--) {
$hasDefault = $this->node->params[$i]->default !== null;
// When we find the first parameter that does not have a default,
// flip the flag as all params for this are no longer optional
// EVEN if they have a default value
if (!$hasDefault) {
$overallOptionalFlag = false;
}
$this->node->params[$i]->isOptional = $overallOptionalFlag;
}
}