Skip to content

Internal error: Invalid identifier name "" after upgrade to 1.7 #7404

@verfriemelt-dot-org

Description

@verfriemelt-dot-org

Bug report

Code snippet that reproduces the problem

after upgrading from phpstan 1.4 to 1.7.10 i get an internal error with this file: https://github.com/verfriemelt-dot-org/wrapped/blob/master/tests/unit/DI/ContainerTest.php

 -- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     Error
 -- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     Internal error: Internal error: Invalid identifier name "" in file /home/easteregg/src/wrapped/tests/unit/DI/ContainerTest.php

     Post the following stack trace to https://github.com/phpstan/phpstan/issues/new?template=Bug_report.md:
     #0 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Identifier/Identifier.php(36): PHPStan\BetterReflection\Identifier\Exception\InvalidIdentifierName::fromInvalidName('')
     #1 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflector/DefaultReflector.php(31): PHPStan\BetterReflection\Identifier\Identifier->__construct('', Object(PHPStan\BetterReflection\Identifier\IdentifierType))
     #2 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/Reflector/MemoizingReflector.php(45): PHPStan\BetterReflection\Reflector\DefaultReflector->reflectClass('')
     #3 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/BetterReflectionProvider.php(166): PHPStan\Reflection\BetterReflection\Reflector\MemoizingReflector->reflectClass('')
     #4 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ReflectionProvider/MemoizingReflectionProvider.php(43): PHPStan\Reflection\BetterReflection\BetterReflectionProvider->getClass('')
     #5 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Dependency/DependencyResolver.php(206): PHPStan\Reflection\ReflectionProvider\MemoizingReflectionProvider->getClass('')
     #6 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Dependency/DependencyResolver.php(128): PHPStan\Dependency\DependencyResolver->addClassToDependencies('', Array)
     #7 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(172): PHPStan\Dependency\DependencyResolver->resolveDependencies(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope))
     #8 phar:///home/easteregg/src/wrapped/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))
     #9 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(460): PHPStan\Node\ClassStatementsGatherer->__invoke(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope))
     #10 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(2364): PHPStan\Analyser\NodeScopeResolver::PHPStan\Analyser\{closure}(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope))
     #11 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(1390): PHPStan\Analyser\NodeScopeResolver->callNodeCallbackWithExpression(Object(Closure), Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Analyser\ExpressionContext))
     #12 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(512): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
     #13 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(325): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
     #14 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(475): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\ClassMethod), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
     #15 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(325): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\ClassMethod), Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Node\ClassStatementsGatherer))
     #16 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(553): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Class_), Array, Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Node\ClassStatementsGatherer))
     #17 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(296): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Class_), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
     #18 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Analyser/FileAnalyser.php(189): PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
     #19 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Command/WorkerCommand.php(143): PHPStan\Analyser\FileAnalyser->analyseFile('/home/easteregg...', Array, Object(PHPStan\Rules\Registry), NULL)
     #20 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): PHPStan\Command\WorkerCommand->PHPStan\Command\{closure}(Array)
     #21 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/clue/ndjson-react/src/Decoder.php(110): _PHPStan_3a7a22dbd\Evenement\EventEmitter->emit('data', Array)
     #22 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): _PHPStan_3a7a22dbd\Clue\React\NDJson\Decoder->handleData(Array)
     #23 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/react/stream/src/Util.php(62): _PHPStan_3a7a22dbd\Evenement\EventEmitter->emit('data', Array)
     #24 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(97): _PHPStan_3a7a22dbd\React\Stream\Util::_PHPStan_3a7a22dbd\React\Stream\{closure}('{"action":"anal...')
     #25 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/react/stream/src/DuplexResourceStream.php(154): _PHPStan_3a7a22dbd\Evenement\EventEmitter->emit('data', Array)
     #26 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(201): _PHPStan_3a7a22dbd\React\Stream\DuplexResourceStream->handleData(Resource id #3325)
     #27 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/react/event-loop/src/StreamSelectLoop.php(173): _PHPStan_3a7a22dbd\React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)
     #28 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/src/Command/WorkerCommand.php(106): _PHPStan_3a7a22dbd\React\EventLoop\StreamSelectLoop->run()
     #29 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Command/Command.php(259): PHPStan\Command\WorkerCommand->execute(Object(_PHPStan_3a7a22dbd\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_3a7a22dbd\Symfony\Component\Console\Output\ConsoleOutput))
     #30 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(856): _PHPStan_3a7a22dbd\Symfony\Component\Console\Command\Command->run(Object(_PHPStan_3a7a22dbd\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_3a7a22dbd\Symfony\Component\Console\Output\ConsoleOutput))
     #31 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(259): _PHPStan_3a7a22dbd\Symfony\Component\Console\Application->doRunCommand(Object(PHPStan\Command\WorkerCommand), Object(_PHPStan_3a7a22dbd\Symfony\Component\Console\Input\ArgvInput),
     Object(_PHPStan_3a7a22dbd\Symfony\Component\Console\Output\ConsoleOutput))
     #32 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/vendor/symfony/console/Application.php(157): _PHPStan_3a7a22dbd\Symfony\Component\Console\Application->doRun(Object(_PHPStan_3a7a22dbd\Symfony\Component\Console\Input\ArgvInput), Object(_PHPStan_3a7a22dbd\Symfony\Component\Console\Output\ConsoleOutput))
     #33 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(127): _PHPStan_3a7a22dbd\Symfony\Component\Console\Application->run()
     #34 phar:///home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan.phar/bin/phpstan(128): _PHPStan_3a7a22dbd\{closure}()
     #35 /home/easteregg/src/wrapped/vendor/phpstan/phpstan/phpstan(8): require('phar:///home/ea...')
     #36 /home/easteregg/src/wrapped/vendor/bin/phpstan(117): include('/home/easteregg...')
     #37 {main}
     Child process error (exit code 1):
 -- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

you can reproduce this via

git clone https://github.com/verfriemelt-dot-org/wrapped
cd wrapped
git checkout 5fd9ddf
composer install
phpstan -vvv

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

the new 1.7 version resolved so many problems with analysing an old legacy codebase at work (old propel and symfony 1 stuff), hell yeah im still glad you started this project. :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions