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

Error: Not a single literal in UnionTrait.php:1189 #9671

Closed
brusch opened this issue Apr 18, 2023 · 4 comments · Fixed by #9673
Closed

Error: Not a single literal in UnionTrait.php:1189 #9671

brusch opened this issue Apr 18, 2023 · 4 comments · Fixed by #9673

Comments

@brusch
Copy link

brusch commented Apr 18, 2023

We're getting the following error when running agains our code-base:

Uncaught InvalidArgumentException: Not a single literal in /composer/vendor/vimeo/psalm/src/Psalm/Type/UnionTrait.php:1189
Stack trace:
#0 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/ArrayFunctionArgumentsAnalyzer.php(400): Psalm\Type\Union->getSingleLiteral()
#1 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/ArgumentsAnalyzer.php(109): Psalm\Internal\Analyzer\Statements\Expression\Call\ArrayFunctionArgumentsAnalyzer::handleSplice()
#2 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Expression/Call/FunctionCallAnalyzer.php(179): Psalm\Internal\Analyzer\Statements\Expression\Call\ArgumentsAnalyzer::analyze()
#3 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/ExpressionAnalyzer.php(295): Psalm\Internal\Analyzer\Statements\Expression\Call\FunctionCallAnalyzer::analyze()
#4 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/ExpressionAnalyzer.php(85): Psalm\Internal\Analyzer\Statements\ExpressionAnalyzer::handleExpression()
#5 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/StatementsAnalyzer.php(559): Psalm\Internal\Analyzer\Statements\ExpressionAnalyzer::analyze()
#6 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/StatementsAnalyzer.php(194): Psalm\Internal\Analyzer\StatementsAnalyzer::analyzeStatement()
#7 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/IfElse/ElseIfAnalyzer.php(258): Psalm\Internal\Analyzer\StatementsAnalyzer->analyze()
#8 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Statements/Block/IfElseAnalyzer.php(281): Psalm\Internal\Analyzer\Statements\Block\IfElse\ElseIfAnalyzer::analyze()
#9 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/StatementsAnalyzer.php(513): Psalm\Internal\Analyzer\Statements\Block\IfElseAnalyzer::analyze()
#10 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/StatementsAnalyzer.php(194): Psalm\Internal\Analyzer\StatementsAnalyzer::analyzeStatement()
#11 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/FunctionLikeAnalyzer.php(471): Psalm\Internal\Analyzer\StatementsAnalyzer->analyze()
#12 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ClassAnalyzer.php(1786): Psalm\Internal\Analyzer\FunctionLikeAnalyzer->analyze()
#13 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ClassAnalyzer.php(415): Psalm\Internal\Analyzer\ClassAnalyzer->analyzeClassMethod()
#14 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/FileAnalyzer.php(203): Psalm\Internal\Analyzer\ClassAnalyzer->analyze()
#15 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Analyzer.php(1581): Psalm\Internal\Analyzer\FileAnalyzer->analyze()
#16 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Analyzer.php([522](https://github.com/pimcore/pimcore/actions/runs/4730430903/jobs/8394133073?pr=14945#step:4:524)): Psalm\Internal\Codebase\Analyzer->analysisWorker()
#17 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Codebase/Analyzer.php(272): Psalm\Internal\Codebase\Analyzer->doAnalysis()
#18 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ProjectAnalyzer.php(560): Psalm\Internal\Codebase\Analyzer->analyzeFiles()
#19 /composer/vendor/vimeo/psalm/src/Psalm/Internal/Cli/Psalm.php(373): Psalm\Internal\Analyzer\ProjectAnalyzer->check()
#20 /composer/vendor/vimeo/psalm/psalm(9): Psalm\Internal\Cli\Psalm::run()
#21 /composer/vendor/bin/psalm(120): include('...')
#22 {main}
(Psalm dev-master@e2957a163190c1f5bd057f4ecbaab4b96098a94a crashed due to an uncaught Throwable)

Details see also:
https://github.com/pimcore/pimcore/actions/runs/4730430903/jobs/8394133073?pr=14945#step:4:515

Actually there's no info why this error is happening and if there's something wrong with our code.

@psalm-github-bot
Copy link

Hey @brusch, can you reproduce the issue on https://psalm.dev ?

@brusch
Copy link
Author

brusch commented Apr 18, 2023

Seems to be related with version 5.9.0 - using docker://ghcr.io/psalm/psalm-github-actions:5.8.0 works like a charm.
See: pimcore/pimcore#14951

@orklah
Copy link
Collaborator

orklah commented Apr 18, 2023

It's related to 02f8f11

@whizsid could you take a look? It seems you called getSingleLiteral in a context where we could have multiple literals in the Union

note: the issue is only on master. No release was made since

@whizsid
Copy link
Contributor

whizsid commented Apr 18, 2023

@orklah I am checking it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants