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

Internal error: Internal error: Call to undefined method PHPStan\Type\UnionType::getClassName() #7920

Closed
ChuckHeintzelman opened this issue Sep 3, 2022 · 3 comments

Comments

@ChuckHeintzelman
Copy link

Bug report

Version: 1.8.4

After refactoring, the problem surfaced.

Code snippet that reproduces the problem

Unknown code ... seems to be happening multiple places

Expected output

Stack Trace

(This is one of 9 that is generated)
#0 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ClassReflection.php(512):
NunoMaduro\Larastan\Properties\ModelRelationsExtension->getProperty(Object(PHPStan\Reflection\ClassReflection), 'item')
#1 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(153):
PHPStan\Reflection\ClassReflection->getProperty('item', Object(PHPStan\Analyser\MutatingScope))
#2 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(130):
PHPStan\Type\ObjectType->getUnresolvedPropertyPrototype('item', Object(PHPStan\Analyser\MutatingScope))
#3 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(3584): PHPStan\Type\ObjectType->getProperty('item',
Object(PHPStan\Analyser\MutatingScope))
#4 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(3591):
PHPStan\Analyser\MutatingScope->getPropertyReflection(Object(PHPStan\Type\ObjectType), 'item')
#5 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1444):
PHPStan\Analyser\MutatingScope->propertyFetchType(Object(PHPStan\Type\ObjectType), 'item', Object(PhpParser\Node\Expr\PropertyFetch))
#6 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1450):
PHPStan\Analyser\MutatingScope->PHPStan\Analyser{closure}()
#7 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(558):
PHPStan\Analyser\MutatingScope->resolveType(Object(PhpParser\Node\Expr\PropertyFetch))
#8 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1397):
PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\PropertyFetch))
#9 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1403):
PHPStan\Analyser\MutatingScope->PHPStan\Analyser{closure}()
#10 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(558):
PHPStan\Analyser\MutatingScope->resolveType(Object(PhpParser\Node\Expr\MethodCall))
#11 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(703):
PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\MethodCall))
#12 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(558):
PHPStan\Analyser\MutatingScope->resolveType(Object(PhpParser\Node\Expr\BinaryOp\Identical))
#13 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(626):
PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\BinaryOp\Identical))
#14 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(558):
PHPStan\Analyser\MutatingScope->resolveType(Object(PhpParser\Node\Expr\BooleanNot))
#15 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(717):
PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\BooleanNot))
#16 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(558):
PHPStan\Analyser\MutatingScope->resolveType(Object(PhpParser\Node\Expr\BinaryOp\NotIdentical))
#17 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(599):
PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\BinaryOp\NotIdentical))
#18 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(334):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\If_), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#19 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1098):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Expr\Closure), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#20 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(558):
PHPStan\Analyser\MutatingScope->resolveType(Object(PhpParser\Node\Expr\Closure))
#21 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(2018):
PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\Closure))
#22 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(2469):
PHPStan\Analyser\MutatingScope->enterAnonymousFunction(Object(PhpParser\Node\Expr\Closure), NULL)
#23 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(2633):
PHPStan\Analyser\NodeScopeResolver->processClosureNode(Object(PhpParser\Node\Expr\Closure), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\ExpressionContext), NULL)
#24 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(1637):
PHPStan\Analyser\NodeScopeResolver->processArgs(Object(PHPStan\Reflection\ResolvedMethodReflection), Object(PHPStan\Reflection\ResolvedFunctionVariant),
Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#25 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(529):
PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\ExpressionContext))
#26 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(334):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#27 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(1098):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Expr\Closure), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#28 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/MutatingScope.php(558):
PHPStan\Analyser\MutatingScope->resolveType(Object(PhpParser\Node\Expr\Closure))
#29 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Rules/FunctionCallParametersCheck.php(115):
PHPStan\Analyser\MutatingScope->getType(Object(PhpParser\Node\Expr\Closure))
#30 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Rules/Methods/CallMethodsRule.php(48):
PHPStan\Rules\FunctionCallParametersCheck->check(Object(PHPStan\Reflection\ResolvedFunctionVariant), Object(PHPStan\Analyser\MutatingScope), false,
Object(PhpParser\Node\Expr\MethodCall), Array)
#31 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(105):
PHPStan\Rules\Methods\CallMethodsRule->processNode(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope))
#32 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Node/ClassStatementsGatherer.php(95):
PHPStan\Analyser\FileAnalyser->PHPStan\Analyser{closure}(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope))
#33 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(477):
PHPStan\Node\ClassStatementsGatherer->invoke(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope))
#34 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(2403):
PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser{closure}(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope))
#35 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(1416):
PHPStan\Analyser\NodeScopeResolver->callNodeCallbackWithExpression(Object(Closure), Object(PhpParser\Node\Expr\MethodCall),
Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionContext))
#36 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(529):
PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\ExpressionContext))
#37 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(334):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#38 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(492):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\ClassMethod), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#39 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(334):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\ClassMethod), Object(PHPStan\Analyser\MutatingScope),
Object(PHPStan\Node\ClassStatementsGatherer))
#40 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(570):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Class
), Array, Object(PHPStan\Analyser\MutatingScope),
Object(PHPStan\Node\ClassStatementsGatherer))
#41 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(334):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Class
), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#42 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(542):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Namespace_), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#43 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(304):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Namespace_), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#44 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(174):
PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#45 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Command/WorkerCommand.php(147):
PHPStan\Analyser\FileAnalyser->analyseFile('/Users/chuck/Si...', Array, Object(PHPStan\Rules\Registry), Object(PHPStan\Collectors\Registry), NULL)
#46 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
PHPStan\Command\WorkerCommand->PHPStan\Command{closure}(Array)
#47 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/clue/ndjson-react/src/Decoder.php(110):
_PHPStan_1a8f07040\Evenement\EventEmitter->emit('data', Array)
#48 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
_PHPStan_1a8f07040\Clue\React\NDJson\Decoder->handleData(Array)
#49 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/react/stream/src/Util.php(62):
_PHPStan_1a8f07040\Evenement\EventEmitter->emit('data', Array)
#50 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97):
_PHPStan_1a8f07040\React\Stream\Util::_PHPStan_1a8f07040\React\Stream{closure}('{"action":"anal...')
#51 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/react/stream/src/DuplexResourceStream.php(154):
_PHPStan_1a8f07040\Evenement\EventEmitter->emit('data', Array)
#52 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(201):
_PHPStan_1a8f07040\React\Stream\DuplexResourceStream->handleData(Resource id #4444)
#53 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(173):
_PHPStan_1a8f07040\React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)
#54 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/src/Command/WorkerCommand.php(107):
_PHPStan_1a8f07040\React\EventLoop\StreamSelectLoop->run()
#55 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php(259):
PHPStan\Command\WorkerCommand->execute(Object(_PHPStan_1a8f07040\Symfony\Component\Console\Input\ArgvInput),
Object(_PHPStan_1a8f07040\Symfony\Component\Console\Output\ConsoleOutput))
#56 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(865):
_PHPStan_1a8f07040\Symfony\Component\Console\Command\Command->run(Object(_PHPStan_1a8f07040\Symfony\Component\Console\Input\ArgvInput),
Object(_PHPStan_1a8f07040\Symfony\Component\Console\Output\ConsoleOutput))
#57 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(259):
_PHPStan_1a8f07040\Symfony\Component\Console\Application->doRunCommand(Object(PHPStan\Command\WorkerCommand),
Object(_PHPStan_1a8f07040\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_1a8f07040\Symfony\Component\Console\Output\ConsoleOutput))
#58 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(157):
_PHPStan_1a8f07040\Symfony\Component\Console\Application->doRun(Object(_PHPStan_1a8f07040\Symfony\Component\Console\Input\ArgvInput),
Object(_PHPStan_1a8f07040\Symfony\Component\Console\Output\ConsoleOutput))
#59 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(122): _PHPStan_1a8f07040\Symfony\Component\Console\Application->run()
#60 phar:///Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(123): _PHPStan_1a8f07040{closure}()
#61 /Users/chuck/Sites/pubshare3/vendor/phpstan/phpstan/phpstan(8): require('phar:///Users/c...')
#62 /Users/chuck/Sites/pubshare3/vendor/bin/phpstan(120): include('/Users/chuck/Si...')
#63 {main}
Child process error (exit code 1):

Did PHPStan help you today? Did it make you happy in any way?

Yes, PHPStan is AWESOME! I use it with all my Laravel projects

@mergeable
Copy link

mergeable bot commented Sep 3, 2022

This bug report is missing a link to reproduction at phpstan.org/try.

It will most likely be closed after manual review.

@ondrejmirtes
Copy link
Member

Thank you for your kind words! 😊

This issue is from Larastan (looking at the stack trace), please open an issue there.

@github-actions
Copy link

github-actions bot commented Oct 5, 2022

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 5, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants