protected function walkFunctionDeclaration(FunctionDeclarationNode $functionDeclaration)
 {
     $this->declarations[$functionDeclaration->getName()] = $functionDeclaration;
     $this->walkEachDisallow($functionDeclaration->getBody(), "function");
 }
 protected function walkFunctionDeclaration(FunctionDeclarationNode $functionDeclaration)
 {
     $variableNames = array();
     foreach ($functionDeclaration->getBody() as $statement) {
         foreach ($this->walk($statement) as $name => $_) {
             $variableNames[$name] = true;
         }
     }
     foreach ($functionDeclaration->getDefaultArguments() as $name => $argument) {
         $variableNames[$name] = true;
     }
     return $variableNames;
 }