Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Analyzer/DocblockTypesResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ private function resolvePropertyTypes(Node $node): void
$doctrineAnnotations = $docblock->getDoctrineLikeAnnotationTypes();
$doctrineAnnotations = array_shift($doctrineAnnotations);

if (null === $doctrineAnnotations) {
if (!$this->isTypeClass($doctrineAnnotations)) {
return;
}

Expand Down
25 changes: 17 additions & 8 deletions tests/Unit/Analyzer/DocblockTypesResolverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public function test_it_should_collect_dependencies_defined_in_docblock(): void

use Application\MyDto;
use Domain\ValueObject;
use Symfony\Component\Validator\Constraints AS Assert;

use Application\Model\{User, Product};

Expand All @@ -39,9 +40,16 @@ class MyClass
/** @var array<int, int|string> */
public array $myArray;

/** @var array<int, User> */
/**
* @var array<int, User>
* @Assert\Blank
*/
public array $users;

/**
* @phpstan-ignore property.readOnlyByPhpDocDefaultValue
*/
private static ?\UuidFactoryInterface $factory = null;

/**
* @param MyDto[] $dtoList
Expand Down Expand Up @@ -76,13 +84,14 @@ public function myMethod2(array $aParam, array $users): array
$cd = $parser->getClassDescriptions()[0];
$dep = $cd->getDependencies();

self::assertCount(7, $cd->getDependencies());
self::assertCount(8, $cd->getDependencies());
self::assertEquals('Application\Model\User', $dep[0]->getFQCN()->toString());
self::assertEquals('Application\MyDto', $dep[1]->getFQCN()->toString());
self::assertEquals('Domain\ValueObject', $dep[2]->getFQCN()->toString());
self::assertEquals('Application\Model\User', $dep[3]->getFQCN()->toString());
self::assertEquals('Application\Model\Product', $dep[4]->getFQCN()->toString());
self::assertEquals('Domain\Foo\MyOtherClass', $dep[5]->getFQCN()->toString());
self::assertEquals('Application\Model\User', $dep[6]->getFQCN()->toString());
self::assertEquals('UuidFactoryInterface', $dep[1]->getFQCN()->toString());
self::assertEquals('Application\MyDto', $dep[2]->getFQCN()->toString());
self::assertEquals('Domain\ValueObject', $dep[3]->getFQCN()->toString());
self::assertEquals('Application\Model\User', $dep[4]->getFQCN()->toString());
self::assertEquals('Application\Model\Product', $dep[5]->getFQCN()->toString());
self::assertEquals('Domain\Foo\MyOtherClass', $dep[6]->getFQCN()->toString());
self::assertEquals('Application\Model\User', $dep[7]->getFQCN()->toString());
}
}