Skip to content

Commit 4675b3b

Browse files
committed
Failing test for phpstan#512
1 parent b15c279 commit 4675b3b

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

tests/Type/Doctrine/QueryBuilder/QueryBuilderGetQueryDynamicReturnTypeExtensionTest.php

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public function dataFileAsserts(): iterable
1212
{
1313
yield from $this->gatherAssertTypes(__DIR__ . '/../data/QueryResult/queryBuilderGetQuery.php');
1414
yield from $this->gatherAssertTypes(__DIR__ . '/../data/QueryResult/bug-245.php');
15+
yield from $this->gatherAssertTypes(__DIR__ . '/../data/QueryResult/bug-512.php');
1516
}
1617

1718
/**

tests/Type/Doctrine/data/QueryResult/Entities/One.php

+9
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
namespace QueryResult\Entities;
44

55
use Doctrine\Common\Collections\Collection;
6+
use Doctrine\ORM\EntityManagerInterface;
67
use Doctrine\ORM\Mapping\Column;
78
use Doctrine\ORM\Mapping\Embedded as ORMEmbedded;
89
use Doctrine\ORM\Mapping\Entity;
910
use Doctrine\ORM\Mapping\Id;
1011
use Doctrine\ORM\Mapping\JoinColumn;
1112
use Doctrine\ORM\Mapping\OneToMany;
1213
use Doctrine\ORM\Mapping\OneToOne;
14+
use Doctrine\ORM\QueryBuilder;
1315

1416
/**
1517
* @Entity
@@ -71,4 +73,11 @@ public function __construct()
7173
{
7274
$this->subOne = new SubOne();
7375
}
76+
77+
public static function createQueryBuilder(EntityManagerInterface $em): QueryBuilder
78+
{
79+
return $em->createQueryBuilder()
80+
->select('o')
81+
->from(self::class, 'o');
82+
}
7483
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace QueryResult\Bug512;
4+
5+
use Doctrine\ORM\EntityManagerInterface;
6+
use QueryResult\Entities\One;
7+
use function PHPStan\Testing\assertType;
8+
9+
class Bug512
10+
{
11+
public function test(EntityManagerInterface $em): void
12+
{
13+
$query = One::createQueryBuilder($em)->getQuery();
14+
assertType('Doctrine\ORM\Query<null, QueryResult\Entities\One>', $query);
15+
assertType('list<QueryResult\Entities\One>', $query->getResult());
16+
}
17+
}

0 commit comments

Comments
 (0)