private function getInterfacesHierarchy()
{
if (!$this->isInterface()) {
throw NotAnInterfaceReflection::fromReflectionClass($this);
}
/* @var $node InterfaceNode */
$node = $this->node;
return array_merge([$this->getName() => $this], ...array_map(function (Node\Name $interfaceName) {
return $this->reflectClassForNamedNode($interfaceName)->getInterfacesHierarchy();
}, $node->extends));
}