-
Notifications
You must be signed in to change notification settings - Fork 107
Open
Description
I'm looking at upgrading to v2.0 and just turned on bleeding edge. This has resulted in these errors being reported for Doctrine repositories.
PHPDoc tag @var with type App\Repository\UserRepository is not subtype of type App\Repository\UserRepository<App\Entity\User>
The repository is defined like this:
/**
* @extends ServiceEntityRepository<User>
*/
class UserRepository extends ServiceEntityRepository {}
And the error is triggered by this:
/** @var UserRepository */
$userRepository = $entityManager->getRepository(User::class);
I see I can quieten the error by removing the docblock, but I need /** @var UserRepository */
to appease my IDE and for it to pick up methods from the repository.
It hasn't been giving an error without bleeding edge.
How can I work around this short of ignoring the error completely?
I'm not actually sure whether this is caused by phpstan itself or the Doctrine extension.
phpstan v1.12.11
phpstan-doctrine v1.5.6
phpstan/phpstan-symfony 1.4.12
Thanks!
gdbonino and ger86
Activity
InvisibleSmiley commentedon Jan 13, 2025
It is caused by this extension, namely GetRepositoryDynamicReturnTypeExtension.
It determines the repository class and then creates a generic type from that:
when in fact the repository class is already generic.