-
-
Notifications
You must be signed in to change notification settings - Fork 946
Closed
Description
Bug report
Hello 👋🏽
Recently I upgrade from 1.12.19 to 1.12.23 and encountered an issue. Sadly could not reproduce in playground. But it is basically this. The one that has comment triggers the error in WrongVariableNameInVarTagRule
Here is the stack trace
Internal error: Class Foo\Bar\stdClass was not found while trying to analyse it - discovering symbols is probably not configured properly. while analysing file
/foo/bar/some_file.php
Post the following stack trace to https://github.com/phpstan/phpstan/issues/new?template=Bug_report.yaml:
## phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(188)
#0 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectType.php(173): PHPStan\Type\ObjectType->getUnresolvedPropertyPrototype('id',
Object(PHPStan\Analyser\OutOfClassScope))
#1 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectShapeType.php(212): PHPStan\Type\ObjectType->getProperty('id',
Object(PHPStan\Analyser\OutOfClassScope))
#2 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Type/ObjectShapeType.php(180):
PHPStan\Type\ObjectShapeType->isSuperTypeOfWithReason(Object(PHPStan\Type\ObjectType))
#3 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Type/TypeCombinator.php(948):
PHPStan\Type\ObjectShapeType->isSuperTypeOf(Object(PHPStan\Type\ObjectType))
#4 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/PhpDoc/TypeNodeResolver.php(475):
PHPStan\Type\TypeCombinator::intersect(Object(PHPStan\Type\ObjectShapeType), Object(PHPStan\Type\ObjectType))
#5 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/PhpDoc/TypeNodeResolver.php(176):
PHPStan\PhpDoc\TypeNodeResolver->resolveIntersectionTypeNode(Object(PHPStan\PhpDocParser\Ast\Type\IntersectionTypeNode), Object(PHPStan\Analyser\NameScope))
#6 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/PhpDoc/TypeNodeResolver.php(928):
PHPStan\PhpDoc\TypeNodeResolver->resolve(Object(PHPStan\PhpDocParser\Ast\Type\IntersectionTypeNode), Object(PHPStan\Analyser\NameScope))
#7 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/PhpDoc/TypeNodeResolver.php(493): PHPStan\PhpDoc\TypeNodeResolver->resolveMultiple(Array,
Object(PHPStan\Analyser\NameScope))
#8 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/PhpDoc/TypeNodeResolver.php(184):
PHPStan\PhpDoc\TypeNodeResolver->resolveGenericTypeNode(Object(PHPStan\PhpDocParser\Ast\Type\GenericTypeNode), Object(PHPStan\Analyser\NameScope))
#9 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Rules/PhpDoc/VarTagTypeRuleHelper.php(192):
PHPStan\PhpDoc\TypeNodeResolver->resolve(Object(PHPStan\PhpDocParser\Ast\Type\GenericTypeNode), Object(PHPStan\Analyser\NameScope))
#10 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Rules/PhpDoc/VarTagTypeRuleHelper.php(159):
PHPStan\Rules\PhpDoc\VarTagTypeRuleHelper->isAtLeastMaybeSuperTypeOfVarType(Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Type\Generic\GenericObjectType),
Object(PHPStan\Type\Generic\GenericObjectType))
#11 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Rules/PhpDoc/VarTagTypeRuleHelper.php(145):
PHPStan\Rules\PhpDoc\VarTagTypeRuleHelper->checkType(Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Type\Generic\GenericObjectType),
Object(PHPStan\Type\Generic\GenericObjectType))
#12 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Rules/PhpDoc/VarTagTypeRuleHelper.php(101):
PHPStan\Rules\PhpDoc\VarTagTypeRuleHelper->shouldVarTagTypeBeReported(Object(PHPStan\Analyser\MutatingScope), Object(PhpParser\Node\Expr\MethodCall),
Object(PHPStan\Type\Generic\GenericObjectType), Object(PHPStan\Type\Generic\GenericObjectType))
#13 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Rules/PhpDoc/VarTagTypeRuleHelper.php(69):
PHPStan\Rules\PhpDoc\VarTagTypeRuleHelper->checkExprType(Object(PHPStan\Analyser\MutatingScope), Object(PhpParser\Node\Expr\MethodCall),
Object(PHPStan\Type\Generic\GenericObjectType))
#14 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Rules/PhpDoc/WrongVariableNameInVarTagRule.php(120):
PHPStan\Rules\PhpDoc\VarTagTypeRuleHelper->checkVarType(Object(PHPStan\Analyser\MutatingScope), Object(PhpParser\Node\Expr\Variable), Object(PhpParser\Node\Expr\MethodCall), Array,
Array)
#15 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Rules/PhpDoc/WrongVariableNameInVarTagRule.php(225):
PHPStan\Rules\PhpDoc\WrongVariableNameInVarTagRule->processAssign(Object(PHPStan\Analyser\MutatingScope), Object(PhpParser\Node\Expr\Variable), Object(PhpParser\Node\Expr\MethodCall),
Array)
#16 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Rules/PhpDoc/WrongVariableNameInVarTagRule.php(84):
PHPStan\Rules\PhpDoc\WrongVariableNameInVarTagRule->processExpression(Object(PHPStan\Analyser\MutatingScope), Object(PhpParser\Node\Expr\Assign), Array)
#17 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(120):
PHPStan\Rules\PhpDoc\WrongVariableNameInVarTagRule->processNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope))
#18 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Node/ClassStatementsGatherer.php(119):
PHPStan\Analyser\FileAnalyser->PHPStan\Analyser\{closure}(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope))
#19 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(655):
PHPStan\Node\ClassStatementsGatherer->__invoke(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope))
#20 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(730):
PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser\{closure}(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope))
#21 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(3331):
PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser\{closure}(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope))
#22 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(730):
PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser\{closure}(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope))
#23 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(3331):
PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser\{closure}(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope))
#24 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(535):
PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser\{closure}(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope))
#25 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(465):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#26 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(3356):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Expr\Closure), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#27 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(3610):
PHPStan\Analyser\NodeScopeResolver->processClosureNode(Object(PhpParser\Node\Stmt\Expression), Object(PhpParser\Node\Expr\Closure), Object(PHPStan\Analyser\MutatingScope),
Object(Closure), Object(PHPStan\Analyser\ExpressionContext), Object(PHPStan\Type\ClosureType))
#28 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(2225):
PHPStan\Analyser\NodeScopeResolver->processArgs(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Reflection\ResolvedMethodReflection), NULL,
Object(PHPStan\Reflection\ResolvedFunctionVariantWithOriginal), Object(PhpParser\Node\Expr\StaticCall), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\ExpressionContext), NULL)
#29 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(729):
PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Stmt\Expression), Object(PhpParser\Node\Expr\StaticCall), Object(PHPStan\Analyser\MutatingScope),
Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#30 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(465):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#31 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(3356):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Expr\Closure), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#32 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(3610):
PHPStan\Analyser\NodeScopeResolver->processClosureNode(Object(PhpParser\Node\Stmt\Expression), Object(PhpParser\Node\Expr\Closure), Object(PHPStan\Analyser\MutatingScope),
Object(Closure), Object(PHPStan\Analyser\ExpressionContext), Object(PHPStan\Type\CallableType))
#33 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(2095):
PHPStan\Analyser\NodeScopeResolver->processArgs(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Reflection\ResolvedMethodReflection),
Object(PHPStan\Reflection\Php\PhpMethodReflection), Object(PHPStan\Reflection\ResolvedFunctionVariantWithOriginal), Object(PhpParser\Node\Expr\MethodCall),
Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#34 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(729):
PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Stmt\Expression), Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope),
Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#35 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(465):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#36 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(654):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\ClassMethod), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#37 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(465):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\ClassMethod), Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Node\ClassStatementsGatherer),
Object(PHPStan\Analyser\StatementContext))
#38 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(794):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Class_), Array, Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Node\ClassStatementsGatherer),
Object(PHPStan\Analyser\StatementContext))
#39 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(465):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Class_), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#40 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(761):
PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Namespace_), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#41 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(430):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Namespace_), Object(PHPStan\Analyser\MutatingScope), Object(Closure),
Object(PHPStan\Analyser\StatementContext))
#42 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(179): PHPStan\Analyser\NodeScopeResolver->processNodes(Array,
Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#43 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/Analyser.php(79): PHPStan\Analyser\FileAnalyser->analyseFile('/home/can/code/...', Array,
Object(PHPStan\Rules\LazyRegistry), Object(PHPStan\Collectors\Registry), NULL)
#44 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyserRunner.php(74): PHPStan\Analyser\Analyser->analyse(Array, Object(Closure),
Object(Closure), true, Array)
#45 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseApplication.php(159): PHPStan\Command\AnalyserRunner->runAnalyser(Array, Array,
Object(Closure), Object(Closure), true, true, '/home/can/code/...', Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Input\ArgvInput))
#46 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseApplication.php(79): PHPStan\Command\AnalyseApplication->runAnalyser(Array, Array,
true, '/home/can/code/...', Object(PHPStan\Command\Symfony\SymfonyOutput), Object(PHPStan\Command\Symfony\SymfonyOutput),
Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Input\ArgvInput))
#47 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/src/Command/AnalyseCommand.php(227): PHPStan\Command\AnalyseApplication->analyse(Array, true,
Object(PHPStan\Command\Symfony\SymfonyOutput), Object(PHPStan\Command\Symfony\SymfonyOutput), false, true, '/home/can/code/...', Array,
Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Input\ArgvInput))
#48 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php(259):
PHPStan\Command\AnalyseCommand->execute(Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Input\ArgvInput),
Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Output\ConsoleOutput))
#49 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(870):
_PHPStan_ce0aaf2bf\Symfony\Component\Console\Command\Command->run(Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Input\ArgvInput),
Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Output\ConsoleOutput))
#50 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(261):
_PHPStan_ce0aaf2bf\Symfony\Component\Console\Application->doRunCommand(Object(PHPStan\Command\AnalyseCommand), Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Input\ArgvInput),
Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Output\ConsoleOutput))
#51 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(157):
_PHPStan_ce0aaf2bf\Symfony\Component\Console\Application->doRun(Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Input\ArgvInput),
Object(_PHPStan_ce0aaf2bf\Symfony\Component\Console\Output\ConsoleOutput))
#52 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(127): _PHPStan_ce0aaf2bf\Symfony\Component\Console\Application->run()
#53 phar:///foo/bar/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(128): _PHPStan_ce0aaf2bf\{closure}()
#54 /foo/bar/vendor/phpstan/phpstan/phpstan(8): require('phar:///home/ca...')
#55 /foo/bar/vendor/bin/phpstan(119): include('/home/can/code/...')
#56 {main}
Error does not happen when I remove the @var annotation. I removed every extension and error still happens. I know it'll be hard to figure out if it's not reproducible, but I really tried hard to reproduce 😅 If you decide it's a fluke, feel free to close.
Code snippet that reproduces the problem
No response
Expected output
No errors.
Did PHPStan help you today? Did it make you happy in any way?
It helps me and makes me happy every day! Also annoys my coworkers, that's an added bonus.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels