Skip to content

TypeError: Argument 1 passed to _HumbugBox9db2e91495d9\Nette\Utils\Strings::matchAll() must be of the type string, int given, #4087

@marc-mabe

Description

@marc-mabe

Bug report

On analyzing our code base PHPStan throws an internal error since 0.12.55.

Execute with ./vendor/bin/phpstan analyse --debug -vvv using PHP-7.4.12 with Zend OPcache v7.4.12
phpstan.neon.dist:

parameters:
    tmpDir: ./.phpstan-tmp
    paths:
        - ./module
        - ./lib/DcmnClient/src
        - ./lib/FraunhoferClient/src
        - ./public
        - ./bin
    level: max
    inferPrivatePropertyTypeFromConstructor: true
    checkMissingIterableValueType: false
    ignoreErrors:
        - '#Call to an undefined method Laminas\\InputFilter\\InputFilterInterface\|Laminas\\InputFilter\\InputInterface::[a-zA-Z]+\(\)#'
        - '#Call to an undefined method Assert\\AssertionChain::[a-zA-Z0-9]+\(\)#'

Error:

...
/app/module/ApiCampaign/src/SpotScheduleController.php
Fatal error: Uncaught TypeError: Argument 1 passed to _HumbugBox9db2e91495d9\Nette\Utils\Strings::matchAll() must be of the type string, int given, called in phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/MutatingScope.php on line 1822 and defined in phar:///app/vendor/phpstan/phpstan/phpstan/vendor/nette/utils/src/Utils/Strings.php:409
Stack trace:
#0 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/MutatingScope.php(1822): _HumbugBox9db2e91495d9\Nette\Utils\Strings::matchAll(-1, '#^\\$([a-zA-Z_\\x...')
#1 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1712): PHPStan\Analyser\MutatingScope->enterAnonymousFunction(Object(PhpParser\Node\Expr\Closure), Array)
#2 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1863): PHPStan\Analyser\NodeScopeResolver->processClosureNode(Object(PhpParser\Node\Expr\Closure), Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext), Object(PHPStan\Type\CallableType))
#3 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1165): PHPStan\Analyser\NodeScopeResolver->processArgs(Object(PHPStan\Reflection\Native\NativeFunctionReflection), Object(PHPStan\Reflection\Generic\ResolvedFunctionVariant), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#4 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1865): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\FuncCall), Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#5 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(1268): PHPStan\Analyser\NodeScopeResolver->processArgs(Object(PHPStan\Reflection\ObjectTypeMethodReflection), Object(PHPStan\Reflection\Generic\ResolvedFunctionVariant), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#6 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(395): PHPStan\Analyser\NodeScopeResolver->processExprNode(Object(PhpParser\Node\Expr\MethodCall), Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\ExpressionContext))
#7 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(232): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Expression), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#8 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(365): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\ClassMethod), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#9 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(232): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\ClassMethod), Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Node\ClassStatementsGatherer))
#10 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(437): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Class_), Array, Object(PHPStan\Analyser\MutatingScope), Object(PHPStan\Node\ClassStatementsGatherer))
#11 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(232): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Class_), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#12 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(406): PHPStan\Analyser\NodeScopeResolver->processStmtNodes(Object(PhpParser\Node\Stmt\Namespace_), Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#13 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/NodeScopeResolver.php(201): PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Namespace_), Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#14 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/FileAnalyser.php(148): PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#15 phar:///app/vendor/phpstan/phpstan/phpstan/src/Analyser/Analyser.php(52): PHPStan\Analyser\FileAnalyser->analyseFile('/app/module/Api...', Array, Object(PHPStan\Rules\Registry), NULL)
#16 phar:///app/vendor/phpstan/phpstan/phpstan/src/Command/AnalyserRunner.php(57): PHPStan\Analyser\Analyser->analyse(Array, Object(Closure), Object(Closure), true, Array)
#17 phar:///app/vendor/phpstan/phpstan/phpstan/src/Command/AnalyseApplication.php(143): PHPStan\Command\AnalyserRunner->runAnalyser(Array, Array, Object(Closure), Object(Closure), true, true, '/app/phpstan.ne...', NULL, NULL, Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Input\ArgvInput))
#18 phar:///app/vendor/phpstan/phpstan/phpstan/src/Command/AnalyseApplication.php(74): PHPStan\Command\AnalyseApplication->runAnalyser(Array, Array, true, '/app/phpstan.ne...', Object(PHPStan\Command\Symfony\SymfonyOutput), Object(PHPStan\Command\Symfony\SymfonyOutput), Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Input\ArgvInput))
#19 phar:///app/vendor/phpstan/phpstan/phpstan/src/Command/AnalyseCommand.php(148): PHPStan\Command\AnalyseApplication->analyse(Array, false, Object(PHPStan\Command\Symfony\SymfonyOutput), Object(PHPStan\Command\Symfony\SymfonyOutput), false, true, '/app/phpstan.ne...', Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Input\ArgvInput))
#20 phar:///app/vendor/phpstan/phpstan/phpstan/vendor/symfony/console/Command/Command.php(228): PHPStan\Command\AnalyseCommand->execute(Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Input\ArgvInput), Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Output\ConsoleOutput))
#21 phar:///app/vendor/phpstan/phpstan/phpstan/vendor/symfony/console/Application.php(856): _HumbugBox9db2e91495d9\Symfony\Component\Console\Command\Command->run(Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Input\ArgvInput), Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Output\ConsoleOutput))
#22 phar:///app/vendor/phpstan/phpstan/phpstan/vendor/symfony/console/Application.php(237): _HumbugBox9db2e91495d9\Symfony\Component\Console\Application->doRunCommand(Object(PHPStan\Command\AnalyseCommand), Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Input\ArgvInput), Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Output\ConsoleOutput))
#23 phar:///app/vendor/phpstan/phpstan/phpstan/vendor/symfony/console/Application.php(138): _HumbugBox9db2e91495d9\Symfony\Component\Console\Application->doRun(Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Input\ArgvInput), Object(_HumbugBox9db2e91495d9\Symfony\Component\Console\Output\ConsoleOutput))
#24 phar:///app/vendor/phpstan/phpstan/phpstan/bin/phpstan(76): _HumbugBox9db2e91495d9\Symfony\Component\Console\Application->run()
#25 phar:///app/vendor/phpstan/phpstan/phpstan/bin/phpstan(77): _HumbugBox9db2e91495d9\{closure}()
#26 /app/vendor/phpstan/phpstan/phpstan(6): require('phar:///app/ven...')
#27 {main}
  thrown in phar:///app/vendor/phpstan/phpstan/phpstan/vendor/nette/utils/src/Utils/Strings.php on line 409

Code snippet that reproduces the problem

Sorry can't share the file here

Expected output

No internal error should be thrown.

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