Skip to content

Commit

Permalink
DependencyResolver - literal array dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
ondrejmirtes committed Jan 11, 2019
1 parent 0470c53 commit 6261cb4
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/Dependency/DependencyResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace PHPStan\Dependency;

use PhpParser\Node\Expr\Array_;
use PhpParser\Node\Expr\ArrayDimFetch;
use PhpParser\Node\Expr\Closure;
use PhpParser\Node\Name;
Expand Down Expand Up @@ -171,6 +172,16 @@ public function resolveDependencies(\PhpParser\Node $node, Scope $scope): array
foreach ($exprType->getIterableValueType()->getReferencedClasses() as $referencedClass) {
$this->addClassToDependencies($referencedClass, $dependenciesReflections);
}
} elseif ($node instanceof Array_) {
$arrayType = $scope->getType($node);
if (!$arrayType->isCallable()->no()) {
foreach ($arrayType->getCallableParametersAcceptors($scope) as $variant) {
$referencedClasses = $variant->getReturnType()->getReferencedClasses();
foreach ($referencedClasses as $referencedClass) {
$this->addClassToDependencies($referencedClass, $dependenciesReflections);
}
}
}
}

return $dependenciesReflections;
Expand Down

0 comments on commit 6261cb4

Please sign in to comment.