-
Notifications
You must be signed in to change notification settings - Fork 112
Open
Description
v2.1.31 was ok.
<?php
declare(strict_types=1);
namespace Project\Foo;
use Project\Foo\Operator;
use Doctrine\ORM\EntityManagerInterface;
use Ds\Map;
use InvalidArgumentException;
final readonly class DoctrineRepository
{
public function __construct(private EntityManagerInterface $entityManager)
{
}
public function foo(Operator $operator): Map
{
$queryBuilder = $this->entityManager->createQueryBuilder();
$expr = $queryBuilder->expr();
$comparator = match ($operator) {
Operator::Eq => $expr->in(...),
Operator::Neq=> $expr->notIn(...),
};
... -- ---------------------------------------------------------------------------
Error
-- ---------------------------------------------------------------------------
Internal error: Too few arguments to function
Doctrine\ORM\Query\Expr::in(), 0 passed in
/project/vendor/phpstan/phpstan-doctrine/src/Type/Doctrine
/QueryBuilder/Expr/ExpressionBuilderDynamicReturnTypeExtension.php on
line 77 and exactly 2 expected while analysing file
/project/src/DoctrineRepository.php
Post the following stack trace to
https://github.com/phpstan/phpstan/issues/new?template=Bug_report.yaml:
## /project/vendor/doctrine/orm/src/Query/Expr.php(393)
#0
/project/vendor/phpstan/phpstan-doctrine/src/Type/Doctrine
/QueryBuilder/Expr/ExpressionBuilderDynamicReturnTypeExtension.php(77):
Doctrine\ORM\Query\Expr->in()
#1
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/MutatingScope.php(4044):
PHPStan\Type\Doctrine\QueryBuilder\Expr\ExpressionBuilderDynamicReturnTyp
eExtension->getTypeFromMethodCall()
#2
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/MutatingScope.php(1582):
PHPStan\Analyser\MutatingScope->methodCallReturnType()
#3
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/MutatingScope.php(642):
PHPStan\Analyser\MutatingScope->resolveType()
#4
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/De
pendency/DependencyResolver.php(207):
PHPStan\Analyser\MutatingScope->getType()
#5
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/De
pendency/DependencyResolver.php(446):
PHPStan\Dependency\DependencyResolver->resolveDependencies()
#6
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/FileAnalyser.php(192):
PHPStan\Dependency\DependencyResolver->resolveDependencies()
#7
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/No
de/ClassStatementsGatherer.php(116):
PHPStan\Analyser\FileAnalyser->{closure:PHPStan\Analyser\FileAnalyser::a
nalyseFile():114}()
#8
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(716):
PHPStan\Node\ClassStatementsGatherer->__invoke()
#9
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(820):
PHPStan\Analyser\NodeScopeResolver::{closure:PHPStan\Analyser\NodeScopeRe
solver::processStmtNode():715}()
#10
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(3627):
PHPStan\Analyser\NodeScopeResolver::{closure:PHPStan\Analyser\NodeScopeRe
solver::processStmtNode():819}()
#11
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(2049):
PHPStan\Analyser\NodeScopeResolver->callNodeCallbackWithExpression()
#12
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(2047):
PHPStan\Analyser\NodeScopeResolver->processExprNode()
#13
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(3116):
PHPStan\Analyser\NodeScopeResolver->processExprNode()
#14
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(2076):
PHPStan\Analyser\NodeScopeResolver->processExprNode()
#15
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(4326):
PHPStan\Analyser\NodeScopeResolver->{closure:PHPStan\Analyser\NodeScopeR
esolver::processExprNode():2061}()
#16
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(2061):
PHPStan\Analyser\NodeScopeResolver->processAssignVar()
#17
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(819):
PHPStan\Analyser\NodeScopeResolver->processExprNode()
#18
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(522):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#19
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(955):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#20
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(522):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#21
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(1085):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#22
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(522):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#23
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(715):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#24
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(522):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#25
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(899):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#26
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(522):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#27
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(850):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#28
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/NodeScopeResolver.php(470):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#29
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/An
alyser/FileAnalyser.php(220):
PHPStan\Analyser\NodeScopeResolver->processNodes()
#30
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/Co
mmand/WorkerCommand.php(149):
PHPStan\Analyser\FileAnalyser->analyseFile()
#31
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/evenement/evenement/src/EventEmitterTrait.php(111):
PHPStan\Command\WorkerCommand::{closure:PHPStan\Command\WorkerCommand::ru
nWorker():126}()
#32
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/clue/ndjson-react/src/Decoder.php(117):
_PHPStan_e870ac104\Evenement\EventEmitter->emit()
#33
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/evenement/evenement/src/EventEmitterTrait.php(111):
_PHPStan_e870ac104\Clue\React\NDJson\Decoder->handleData()
#34
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/react/stream/src/Util.php(62):
_PHPStan_e870ac104\Evenement\EventEmitter->emit()
#35
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/evenement/evenement/src/EventEmitterTrait.php(111):
_PHPStan_e870ac104\React\Stream\Util::{closure:_PHPStan_e870ac104\React\S
tream\Util::forwardEvents():61}()
#36
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/react/stream/src/DuplexResourceStream.php(168):
_PHPStan_e870ac104\Evenement\EventEmitter->emit()
#37
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/react/event-loop/src/StreamSelectLoop.php(201):
_PHPStan_e870ac104\React\Stream\DuplexResourceStream->handleData()
#38
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/react/event-loop/src/StreamSelectLoop.php(173):
_PHPStan_e870ac104\React\EventLoop\StreamSelectLoop->waitForStreamActivi
ty()
#39
phar:///project/vendor/phpstan/phpstan/phpstan.phar/src/Co
mmand/WorkerCommand.php(105):
_PHPStan_e870ac104\React\EventLoop\StreamSelectLoop->run()
#40
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/symfony/console/Command/Command.php(259):
PHPStan\Command\WorkerCommand->execute()
#41
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/symfony/console/Application.php(868):
_PHPStan_e870ac104\Symfony\Component\Console\Command\Command->run()
#42
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/symfony/console/Application.php(261):
_PHPStan_e870ac104\Symfony\Component\Console\Application->doRunCommand()
#43
phar:///project/vendor/phpstan/phpstan/phpstan.phar/vendor
/symfony/console/Application.php(157):
_PHPStan_e870ac104\Symfony\Component\Console\Application->doRun()
#44
phar:///project/vendor/phpstan/phpstan/phpstan.phar/bin/ph
pstan(99):
_PHPStan_e870ac104\Symfony\Component\Console\Application->run()
#45
phar:///project/vendor/phpstan/phpstan/phpstan.phar/bin/ph
pstan(100):
{closure:phar:///project/vendor/phpstan/phpstan/phpstan.ph
ar/bin/phpstan:14}()
#46 /project/vendor/phpstan/phpstan/phpstan(8):
require('...')
#47 /project/vendor/bin/phpstan(119): include('...')
#48 {main}
-- ---------------------------------------------------------------------------
speto
Metadata
Metadata
Assignees
Labels
No labels