Skip to content

Commit b75ca03

Browse files
committed
fix(#39): inject function namespaces into the namespace list
Fixes: #39
1 parent 2a00bbc commit b75ca03

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/Project.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,16 @@ public function getNamespaces(): array
200200
return array_keys($this->namespaces);
201201
}
202202

203+
public function addNamespace(string $namespace): void
204+
{
205+
$this->namespaces[$namespace] = $namespace;
206+
// add sub-namespaces
207+
208+
while ($namespace = substr($namespace, 0, (int) strrpos($namespace, '\\'))) {
209+
$this->namespaces[$namespace] = $namespace;
210+
}
211+
}
212+
203213
/**
204214
* @return array<string,FunctionReflection>
205215
*/
@@ -280,6 +290,7 @@ public function addFunction(FunctionReflection $fun): void
280290
{
281291
$this->functions[$fun->getNamespace()][$fun->getName()] = $fun;
282292
$fun->setProject($this);
293+
$this->addNamespace($fun->getNamespace() ?? '');
283294
}
284295

285296
public function addClass(ClassReflection $class): void
@@ -646,12 +657,7 @@ protected function updateCache(ClassReflection $class)
646657
{
647658
$name = $class->getName();
648659

649-
$this->namespaces[$class->getNamespace() ?? ''] = $class->getNamespace() ?? '';
650-
// add sub-namespaces
651-
$namespace = $class->getNamespace() ?? '';
652-
while ($namespace = substr($namespace, 0, (int) strrpos($namespace, '\\'))) {
653-
$this->namespaces[$namespace] = $namespace;
654-
}
660+
$this->addNamespace($class->getNamespace() ?? '');
655661

656662
if ($class->isException()) {
657663
$this->namespaceExceptions[$class->getNamespace() ?? ''][$name] = $class;

0 commit comments

Comments
 (0)