phpstan / phpstan-doctrine

Doctrine extensions for PHPStan
MIT License
598 stars 97 forks source link

PHPDoc tag @var with type UserRepository is not subtype of type UserRepository<User>. #630

Open whataboutpereira opened 1 week ago

whataboutpereira commented 1 week ago

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!