-
-
Notifications
You must be signed in to change notification settings - Fork 934
Closed
Description
Bug report
Getting internal errors when running phpstan on a codebase with PHPStan 1.10.8. We've tried with older versions of PHPStan. The first version that produces these internal errors is PHPStan 1.9.0. (1.8.11 doesn't).
Code snippet that reproduces the problem
I don't know what's producing the errors, but here are the stack traces. There are two stack traces, but PHPStan reports that there are 4 errors.
Error:
Internal error: Internal error: preg_match(): Argument #2 ($subject) must be of type string, array given in file
<obfuscated>.php
Stack trace 1:
#0 phar://<local-path>/phpstan.phar/vendor/symfony/polyfill-mbstring/Mbstring.php(440): preg_match()
#1 phar://<local-path>/phpstan.phar/vendor/symfony/polyfill-mbstring/Mbstring.php(416):
Symfony\Polyfill\Mbstring\Mbstring::mb_detect_encoding()
#2 phar://<local-path>/phpstan.phar/vendor/symfony/polyfill-mbstring/bootstrap80.php(45):
Symfony\Polyfill\Mbstring\Mbstring::mb_check_encoding()
#3 phar://<local-path>/phpstan.phar/src/Type/Php/StrCaseFunctionsReturnTypeExtension.php(65): mb_check_encoding()
#4 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(1469):
PHPStan\Type\Php\StrCaseFunctionsReturnTypeExtension->getTypeFromFunctionCall()
#5 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(556):
PHPStan\Analyser\MutatingScope->resolveType()
#6 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(593): PHPStan\Analyser\MutatingScope->getType()
#7 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(556):
PHPStan\Analyser\MutatingScope->resolveType()
#8 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(642): PHPStan\Analyser\MutatingScope->getType()
#9 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(556):
PHPStan\Analyser\MutatingScope->resolveType()
#10 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(652): PHPStan\Analyser\MutatingScope->getType()
#11 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(556):
PHPStan\Analyser\MutatingScope->resolveType()
#12 phar://<local-path>/phpstan.phar/src/Rules/Comparison/UnreachableIfBranchesRule.php(45):
PHPStan\Analyser\MutatingScope->getType()
#13 phar://<local-path>/phpstan.phar/src/Analyser/FileAnalyser.php(106):
PHPStan\Rules\Comparison\UnreachableIfBranchesRule->processNode()
#14 phar://<local-path>/phpstan.phar/src/Node/ClassStatementsGatherer.php(98):
PHPStan\Analyser\FileAnalyser->PHPStan\Analyser\{closure}()
#15 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(508):
PHPStan\Node\ClassStatementsGatherer->__invoke()
#16 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(417):
PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser\{closure}()
#17 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(362):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#18 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(523):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#19 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(362):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#20 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(601):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#21 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(331):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#22 phar://<local-path>/phpstan.phar/src/Analyser/FileAnalyser.php(175):
PHPStan\Analyser\NodeScopeResolver->processNodes()
#23 phar://<local-path>/phpstan.phar/src/Command/WorkerCommand.php(130):
PHPStan\Analyser\FileAnalyser->analyseFile()
#24 phar://<local-path>/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
PHPStan\Command\WorkerCommand->PHPStan\Command\{closure}()
#25 phar://<local-path>/phpstan.phar/vendor/clue/ndjson-react/src/Decoder.php(110):
_PHPStan_cbfb23d84\Evenement\EventEmitter->emit()
#26 phar://<local-path>/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
_PHPStan_cbfb23d84\Clue\React\NDJson\Decoder->handleData()
#27 phar://<local-path>/phpstan.phar/vendor/react/stream/src/Util.php(62):
_PHPStan_cbfb23d84\Evenement\EventEmitter->emit()
#28 phar://<local-path>/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
_PHPStan_cbfb23d84\React\Stream\Util::_PHPStan_cbfb23d84\React\Stream\{closure}()
#29 phar://<local-path>/phpstan.phar/vendor/react/stream/src/DuplexResourceStream.php(154):
_PHPStan_cbfb23d84\Evenement\EventEmitter->emit()
#30 phar://<local-path>/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(201):
_PHPStan_cbfb23d84\React\Stream\DuplexResourceStream->handleData()
#31 phar://<local-path>/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(173):
_PHPStan_cbfb23d84\React\EventLoop\StreamSelectLoop->waitForStreamActivity()
#32 phar://<local-path>/phpstan.phar/src/Command/WorkerCommand.php(96):
_PHPStan_cbfb23d84\React\EventLoop\StreamSelectLoop->run()
#33 phar://<local-path>/phpstan.phar/vendor/symfony/console/Command/Command.php(259):
PHPStan\Command\WorkerCommand->execute()
#34 phar://<local-path>/phpstan.phar/vendor/symfony/console/Application.php(870):
_PHPStan_cbfb23d84\Symfony\Component\Console\Command\Command->run()
#35 phar://<local-path>/phpstan.phar/vendor/symfony/console/Application.php(261):
_PHPStan_cbfb23d84\Symfony\Component\Console\Application->doRunCommand()
#36 phar://<local-path>/phpstan.phar/vendor/symfony/console/Application.php(157):
_PHPStan_cbfb23d84\Symfony\Component\Console\Application->doRun()
#37 phar://<local-path>/phpstan.phar/bin/phpstan(124):
_PHPStan_cbfb23d84\Symfony\Component\Console\Application->run()
#38 phar://<local-path>/phpstan.phar/bin/phpstan(125): _PHPStan_cbfb23d84\{closure}()
#39 <local-path>/phpstan.phar(6): require('...')
#40 {main}
Stack trace 2:
#0 phar://<local-path>/phpstan.phar/vendor/symfony/polyfill-mbstring/Mbstring.php(440): preg_match()
#1 phar://<local-path>/phpstan.phar/vendor/symfony/polyfill-mbstring/Mbstring.php(416):
Symfony\Polyfill\Mbstring\Mbstring::mb_detect_encoding()
#2 phar://<local-path>/phpstan.phar/vendor/symfony/polyfill-mbstring/bootstrap80.php(45):
Symfony\Polyfill\Mbstring\Mbstring::mb_check_encoding()
#3 phar://<local-path>/phpstan.phar/src/Type/Php/StrCaseFunctionsReturnTypeExtension.php(65): mb_check_encoding()
#4 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(1469):
PHPStan\Type\Php\StrCaseFunctionsReturnTypeExtension->getTypeFromFunctionCall()
#5 phar://<local-path>/phpstan.phar/src/Analyser/MutatingScope.php(556):
PHPStan\Analyser\MutatingScope->resolveType()
#6 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(2365):
PHPStan\Analyser\MutatingScope->getType()
#7 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(1559):
PHPStan\Analyser\NodeScopeResolver->getFunctionThrowPoint()
#8 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(2768):
PHPStan\Analyser\NodeScopeResolver->processExprNode()
#9 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(1708):
PHPStan\Analyser\NodeScopeResolver->processArgs()
#10 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(560):
PHPStan\Analyser\NodeScopeResolver->processExprNode()
#11 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(362):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#12 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(725):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#13 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(362):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#14 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(648):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#15 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(362):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#16 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(523):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#17 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(362):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#18 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(601):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes()
#19 phar://<local-path>/phpstan.phar/src/Analyser/NodeScopeResolver.php(331):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#20 phar://<local-path>/phpstan.phar/src/Analyser/FileAnalyser.php(175):
PHPStan\Analyser\NodeScopeResolver->processNodes()
#21 phar://<local-path>/phpstan.phar/src/Command/WorkerCommand.php(130):
PHPStan\Analyser\FileAnalyser->analyseFile()
#22 phar://<local-path>/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
PHPStan\Command\WorkerCommand->PHPStan\Command\{closure}()
#23 phar://<local-path>/phpstan.phar/vendor/clue/ndjson-react/src/Decoder.php(110):
_PHPStan_cbfb23d84\Evenement\EventEmitter->emit()
#24 phar://<local-path>/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
_PHPStan_cbfb23d84\Clue\React\NDJson\Decoder->handleData()
#25 phar://<local-path>/phpstan.phar/vendor/react/stream/src/Util.php(62):
_PHPStan_cbfb23d84\Evenement\EventEmitter->emit()
#26 phar://<local-path>/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
_PHPStan_cbfb23d84\React\Stream\Util::_PHPStan_cbfb23d84\React\Stream\{closure}()
#27 phar://<local-path>/phpstan.phar/vendor/react/stream/src/DuplexResourceStream.php(154):
_PHPStan_cbfb23d84\Evenement\EventEmitter->emit()
#28 phar://<local-path>/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(201):
_PHPStan_cbfb23d84\React\Stream\DuplexResourceStream->handleData()
#29 phar://<local-path>/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(173):
_PHPStan_cbfb23d84\React\EventLoop\StreamSelectLoop->waitForStreamActivity()
#30 phar://<local-path>/phpstan.phar/src/Command/WorkerCommand.php(96):
_PHPStan_cbfb23d84\React\EventLoop\StreamSelectLoop->run()
#31 phar://<local-path>/phpstan.phar/vendor/symfony/console/Command/Command.php(259):
PHPStan\Command\WorkerCommand->execute()
#32 phar://<local-path>/phpstan.phar/vendor/symfony/console/Application.php(870):
_PHPStan_cbfb23d84\Symfony\Component\Console\Command\Command->run()
#33 phar://<local-path>/phpstan.phar/vendor/symfony/console/Application.php(261):
_PHPStan_cbfb23d84\Symfony\Component\Console\Application->doRunCommand()
#34 phar://<local-path>/phpstan.phar/vendor/symfony/console/Application.php(157):
_PHPStan_cbfb23d84\Symfony\Component\Console\Application->doRun()
#35 phar://<local-path>/phpstan.phar/bin/phpstan(124):
_PHPStan_cbfb23d84\Symfony\Component\Console\Application->run()
#36 phar://<local-path>/phpstan.phar/bin/phpstan(125): _PHPStan_cbfb23d84\{closure}()
#37 <local-path>/phpstan.phar(6): require('...')
#38 {main}
Expected output
No internal errors.
Did PHPStan help you today? Did it make you happy in any way?
Always!
Metadata
Metadata
Assignees
Labels
No labels