composer-unused: Call to undefined method `PhpParser\Node\Expr\Variable::getParts()`

Describe the bug

I have encountered a crash

PHP Fatal error:  Uncaught Error: Call to undefined method PhpParser\Node\Expr\Variable::getParts() in /builds/7/my/app/vendor/composer-unused/symbol-parser/src/Parser/PHP/DefinedSymbolCollector.php:65
Stack trace:
#0 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(200): ComposerUnused\SymbolParser\Parser\PHP\DefinedSymbolCollector->enterNode()
#1 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray()
#2 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode()
#3 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray()
#4 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode()
#5 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray()
#6 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode()
#7 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray()
#8 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode()
#9 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray()
#10 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode()
#11 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(114): PhpParser\NodeTraverser->traverseArray()
#12 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(223): PhpParser\NodeTraverser->traverseNode()
#13 /builds/7/my/app/vendor/nikic/php-parser/lib/PhpParser/NodeTraverser.php(91): PhpParser\NodeTraverser->traverseArray()
#14 /builds/7/my/app/vendor/composer-unused/symbol-parser/src/Parser/PHP/SymbolNameParser.php(55): PhpParser\NodeTraverser->traverse()
#15 /builds/7/my/app/vendor/composer-unused/symbol-parser/src/Symbol/Provider/FileSymbolProvider.php(44): ComposerUnused\SymbolParser\Parser\PHP\SymbolNameParser->parseSymbolNames()
#16 /builds/7/my/app/vendor/composer-unused/symbol-parser/src/Symbol/Loader/FileSymbolLoader.php(70): ComposerUnused\SymbolParser\Symbol\Provider\FileSymbolProvider->provide()
#17 /builds/7/my/app/vendor/composer-unused/symbol-parser/src/Symbol/Loader/CompositeSymbolLoader.php(29): ComposerUnused\SymbolParser\Symbol\Loader\FileSymbolLoader->load()
#18 [internal function]: ComposerUnused\SymbolParser\Symbol\Loader\CompositeSymbolLoader->load()
#19 /builds/7/my/app/vendor/composer-unused/symbol-parser/src/Symbol/SymbolList.php(23): iterator_to_array()
#20 /builds/7/my/app/vendor/icanhazstring/composer-unused/src/Command/Handler/CollectRequiredDependenciesCommandHandler.php(60): ComposerUnused\SymbolParser\Symbol\SymbolList->addAll()
#21 /builds/7/my/app/vendor/icanhazstring/composer-unused/src/Console/Command/UnusedCommand.php(182): ComposerUnused\ComposerUnused\Command\Handler\CollectRequiredDependenciesCommandHandler->collect()
#22 /builds/7/my/app/vendor/symfony/console/Command/Command.php(279): ComposerUnused\ComposerUnused\Console\Command\UnusedCommand->execute()
#23 /builds/7/my/app/vendor/symfony/console/Application.php(1031): Symfony\Component\Console\Command\Command->run()
#24 /builds/7/my/app/vendor/symfony/console/Application.php(318): Symfony\Component\Console\Application->doRunCommand()
#25 /builds/7/my/app/vendor/symfony/console/Application.php(169): Symfony\Component\Console\Application->doRun()
#26 /builds/7/my/app/vendor/icanhazstring/composer-unused/bin/composer-unused(66): Symfony\Component\Console\Application->run()
#27 /builds/7/my/app/vendor/icanhazstring/composer-unused/bin/composer-unused(67): {closure}()
#28 /builds/7/my/app/vendor/bin/composer-unused(119): include('...')
#29 {main}
  thrown in /builds/7/my/app/vendor/composer-unused/symbol-parser/src/Parser/PHP/DefinedSymbolCollector.php on line 65

I run the unused with https://github.com/composer-unused/composer-unused/commit/112d25caea4f8b43a74f61ddf97f062f76bb5208

what other information should I acquire?

About this issue

  • Original URL
  • State: open
  • Created 6 months ago
  • Comments: 18 (18 by maintainers)

Most upvoted comments

@TomasVotruba You can removed symbol-parser constraint into https://github.com/rectorphp/swiss-knife/blob/main/composer.json#L20 to have benefits of new bugfixes version 0.2.5

Yes sounds like a good addition 👍

Got it. If you would be so kind to just run a PR for that patch? Would gladly just release a new version 😉

@icanhazstring composer-unused/symbol-parser need a hotfix and a new release 0.2.3