private function getLocatedFunctionNodesIn($filePath)
{
if (!isset(self::$locatedFunctions[$filePath])) {
$parsedNodes = self::$phpParser->parse(file_get_contents($filePath));
//Resolve any relative, used or aliased types to their fully qualified equivalent
$namespaceResolverTraverser = new PhpParser\NodeTraverser();
$namespaceResolver = new PhpParser\NodeVisitor\NameResolver();
$namespaceResolverTraverser->addVisitor($namespaceResolver);
$resolvedNodes = $namespaceResolverTraverser->traverse($parsedNodes);
//Locate all function nodes
$functionLocatorTraverser = new PhpParser\NodeTraverser();
$functionLocator = new Visitors\FunctionLocatorVisitor($filePath);
$functionLocatorTraverser->addVisitor($functionLocator);
$functionLocatorTraverser->traverse($resolvedNodes);
self::$locatedFunctions[$filePath] = $functionLocator->getLocatedFunctionNodesMap();
}
return self::$locatedFunctions[$filePath];
}