Open
@jlherren

Description

With this entity:

#[Entity]
class Person {
    #[Id]
    #[Column(type: "integer")]
    public int $id;

    public static function getQb(EntityManager $em): QueryBuilder {
        return $em->createQueryBuilder()
                  ->select('p')
                  ->from(self::class, 'p');
    }
}

And this code:

class Test {
    public static function test(EntityManager $em): void {
        Person::getQb($em)->getQuery()->getResult();
    }
}

I get the following error:

 -- --------------------------------------------------------------------------------------------------------------------
     Error
 -- --------------------------------------------------------------------------------------------------------------------
     Internal error: Internal error: Class "App\Test" is not a valid entity or mapped super class. while analysing file
     C:\Projekte\TestProjects\PhpstanDoctrine\src\Test.php
     Run PHPStan with -v option and post the stack trace to:
     https://.com/phpstan/phpstan/issues/new?template=Bug_report.yaml
     Child process error (exit code 1):
 -- --------------------------------------------------------------------------------------------------------------------

If I replace self::class with Person::class, it works as expected. It seems that self is being understood to be Test, when in fact it refers to Person. I can provide a fuller reproduction example if desired. This seems to have gone broken in a recent release.