Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Php stan crashing #2066

Closed
vitxd opened this issue Oct 12, 2024 · 1 comment
Closed

Php stan crashing #2066

vitxd opened this issue Oct 12, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@vitxd
Copy link

vitxd commented Oct 12, 2024

  • Larastan Version: 1.0.3
  • Laravel Version: 8.83.27

Description

     Internal error: Too few arguments to function PHPStan\Analyser\MutatingScope::assignVariable(), 2 passed in /app/vendor/larastan/larastan/src/ReturnTypes/CollectionFilterDynamicReturnTypeExtension.php on line 96 and at least 3 expected while
     analysing file /app/app/Jobs/MergePdfChunks.php
     Post the following stack trace to https://github.com/larastan/larastan/issues/new?template=bug-report.md:
     ## phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(2796)
     #0 /app/vendor/larastan/larastan/src/ReturnTypes/CollectionFilterDynamicReturnTypeExtension.php(96): PHPStan\Analyser\MutatingScope->assignVariable('file', Object(PHPStan\Type\MixedType))
     #1 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(3945): NunoMaduro\Larastan\ReturnTypes\CollectionFilterDynamicReturnTypeExtension->getTypeFromMethodCall(Object(PHPStan\Reflection\ResolvedMethodReflection),
     Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope))
     #2 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1633): PHPStan\Analyser\MutatingScope->methodCallReturnType(Object(PHPStan\Type\Generic\GenericObjectType), 'filter', Object(PhpParser\Node\Expr\MethodCall))
     #3 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1639): PHPStan\Analyser\MutatingScope->PHPStan\Analyser\{closure}()
     #4 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(617): PHPStan\Analyser\MutatingScope->resolveType('\\Illuminate\\Sup...', Object(PhpParser\Node\Expr\MethodCall))
     #5 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1633): PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\MethodCall))
     #6 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1639): PHPStan\Analyser\MutatingScope->PHPStan\Analyser\{closure}()
     #7 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(617): PHPStan\Analyser\MutatingScope->resolveType('\\Illuminate\\Sup...', Object(PhpParser\Node\Expr\MethodCall))
     #8 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(843): PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\MethodCall))
     #9 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(617): PHPStan\Analyser\MutatingScope->resolveType('$chunkNames = \\...', Object(PhpParser\Node\Expr\Assign))
     #10 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(1798): PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\Assign))
     #11 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(724): PHPStan\Analyser\NodeScopeResolver->findEarlyTerminatingExpr(Object(PhpParser\Node\Expr\Assign), Object(PHPStan\Analyser\MutatingScope))
     #12 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(464): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
     Object(PHPStan\Analyser\StatementContext))
     #13 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(678): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\ClassMethod), Array, Object(PHPStan\Analyser\MutatingScope),
     Object(Closure), Object(PHPStan\Analyser\StatementContext))
     #14 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(464): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\ClassMethod), Object(PHPStan\Analyser\MutatingScope),
     Object(PHPStan\Node\ClassStatementsGatherer), Object(PHPStan\Analyser\StatementContext))
     #15 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(789): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Class_), Array, Object(PHPStan\Analyser\MutatingScope),
     Object(PHPStan\Node\ClassStatementsGatherer), Object(PHPStan\Analyser\StatementContext))
     #16 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(464): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Class_), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
     Object(PHPStan\Analyser\StatementContext))
     #17 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(759): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Namespace_), Array, Object(PHPStan\Analyser\MutatingScope),
     Object(Closure), Object(PHPStan\Analyser\StatementContext))
     #18 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(429): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Namespace_), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
     Object(PHPStan\Analyser\StatementContext))
     #19 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(179): PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
     #20 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Command/WorkerCommand.php(139): PHPStan\Analyser\FileAnalyser->analyseFile('/app/app/Jobs/M...', Array, Object(PHPStan\Rules\LazyRegistry), Object(PHPStan\Collectors\Registry), NULL)
     #21 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/EventEmitterTrait.php(111): PHPStan\Command\WorkerCommand::PHPStan\Command\{closure}(Array)
     #22 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/clue/ndjson-react/src/Decoder.php(117): _PHPStan_eb6a95a92\Evenement\EventEmitter->emit('data', Array)
     #23 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/EventEmitterTrait.php(111): _PHPStan_eb6a95a92\Clue\React\NDJson\Decoder->handleData(Array)
     #24 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/react/stream/src/Util.php(62): _PHPStan_eb6a95a92\Evenement\EventEmitter->emit('data', Array)
     #25 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/EventEmitterTrait.php(111): _PHPStan_eb6a95a92\React\Stream\Util::_PHPStan_eb6a95a92\React\Stream\{closure}('{"action":"anal...')
     #26 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/react/stream/src/DuplexResourceStream.php(168): _PHPStan_eb6a95a92\Evenement\EventEmitter->emit('data', Array)
     #27 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(201): _PHPStan_eb6a95a92\React\Stream\DuplexResourceStream->handleData(Resource id #5882)
     #28 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(173): _PHPStan_eb6a95a92\React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)
     #29 phar:///app/vendor/phpstan/phpstan/phpstan.phar/src/Command/WorkerCommand.php(99): _PHPStan_eb6a95a92\React\EventLoop\StreamSelectLoop->run()
     #30 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php(259): PHPStan\Command\WorkerCommand->execute(Object(_PHPStan_eb6a95a92\Symfony\Component\Console\Input\ArgvInput),
     Object(_PHPStan_eb6a95a92\Symfony\Component\Console\Output\ConsoleOutput))
     #31 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(870): _PHPStan_eb6a95a92\Symfony\Component\Console\Command\Command->run(Object(_PHPStan_eb6a95a92\Symfony\Component\Console\Input\ArgvInput),
     Object(_PHPStan_eb6a95a92\Symfony\Component\Console\Output\ConsoleOutput))
     #32 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(261): _PHPStan_eb6a95a92\Symfony\Component\Console\Application->doRunCommand(Object(PHPStan\Command\WorkerCommand),
     Object(_PHPStan_eb6a95a92\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_eb6a95a92\Symfony\Component\Console\Output\ConsoleOutput))
     #33 phar:///app/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(157): _PHPStan_eb6a95a92\Symfony\Component\Console\Application->doRun(Object(_PHPStan_eb6a95a92\Symfony\Component\Console\Input\ArgvInput),
     Object(_PHPStan_eb6a95a92\Symfony\Component\Console\Output\ConsoleOutput))
     #34 phar:///app/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(127): _PHPStan_eb6a95a92\Symfony\Component\Console\Application->run()
     #35 phar:///app/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(128): _PHPStan_eb6a95a92\{closure}()
     #36 /app/vendor/phpstan/phpstan/phpstan(8): require('phar:///app/ven...')
     #37 /app/vendor/bin/phpstan(119): include('/app/vendor/php...')
     #38 {main}

Laravel code where the issue was found

        $chunkNames = Collection::make($files)
            ->filter(fn (string $file): bool => str_contains($file, 'chunk'))
            ->toArray();

If I invert the filter to be a reject, it works fine....

@vitxd vitxd added the bug Something isn't working label Oct 12, 2024
@szepeviktor
Copy link
Collaborator

szepeviktor commented Oct 12, 2024

Thank you for your report.

I am sorry. v1 is not supported any more.

@canvural canvural closed this as not planned Won't fix, can't repro, duplicate, stale Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants