System error $startLine > 0
While running Rector I get the following error, hence logging this report;
[ERROR] Could not process "/var/www/project/src/Command/ProcessEventChangesCommand.php" file, due to:
"System error: "assert($startLine > 0)"
Run Rector with "--debug" option and post the report here: https://github.com/rectorphp/rector/issues/new". On line: 181
After running with --debug I get the following output;
[ERROR] Could not process "/var/www/project/src/Command/ProcessEventChangesCommand.php" file, due to:
"System error: "assert($startLine > 0)"
Stack trace:
#0
phar://vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass
.php(181): assert(false, 'assert($startLi...')
#1
phar://vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass
.php(236):
PHPStan\BetterReflection\Reflection\ReflectionClass->__construct(Object(PHPStan\Reflection\BetterReflection\Re
flector\MemoizingReflector), Object(PhpParser\Node\Stmt\Class_),
Object(PHPStan\BetterReflection\SourceLocator\Located\LocatedSource), NULL)
#2
phar://vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/BetterReflectionProvider.php(199):
PHPStan\BetterReflection\Reflection\ReflectionClass::createFromNode(Object(PHPStan\Reflection\BetterReflection</>
Reflector\MemoizingReflector), Object(PhpParser\Node\Stmt\Class_),
Object(PHPStan\BetterReflection\SourceLocator\Located\LocatedSource), NULL)
#3
phar://vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ReflectionProvider/MemoizingReflectionProvider.php(52
):
PHPStan\Reflection\BetterReflection\BetterReflectionProvider->getAnonymousClassReflection(Object(PhpParser\Nod
e\Stmt\Class_), Object(PHPStan\Analyser\MutatingScope))
#4 vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(540):
PHPStan\Reflection\ReflectionProvider\MemoizingReflectionProvider->getAnonymousClassReflection(Object(PhpParse
r\Node\Stmt\Class_), Object(PHPStan\Analyser\MutatingScope))
#5 vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(180):
Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->resolveClassOrInterfaceScope(Object(PhpParser\
Node\Stmt\Class_), Object(PHPStan\Analyser\MutatingScope))
#6 phar://vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(560):
Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->{closure:Rector\NodeTypeResolver\PHPStan\Scope
\PHPStanNodeScopeResolver::processNodes():175}(Object(PhpParser\Node\Stmt\Class_),
Object(PHPStan\Analyser\MutatingScope))
#7 phar://vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(434):
PHPStan\Analyser\NodeScopeResolver->processStmtNode(Object(PhpParser\Node\Stmt\Class_),
Object(PHPStan\Analyser\MutatingScope), Object(Closure), Object(PHPStan\Analyser\StatementContext))
#8 vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(405):
PHPStan\Analyser\NodeScopeResolver->processNodes(Array, Object(PHPStan\Analyser\MutatingScope),
Object(Closure))
#9 vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(347):
Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->nodeScopeResolverProcessNodes(Array,
Object(PHPStan\Analyser\MutatingScope), Object(Closure))
#10 vendor/rector/rector/src/Application/ChangedNodeScopeRefresher.php(69):
Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->processNodes(Array, '/var/www/sbback...',
Object(PHPStan\Analyser\MutatingScope))
#11 vendor/rector/rector/src/Rector/AbstractRector.php(246):
Rector\Application\ChangedNodeScopeRefresher->refresh(Object(PhpParser\Node\Attribute), '/var/www/sbback...',
Object(PHPStan\Analyser\MutatingScope))
#12 vendor/rector/rector/src/Rector/AbstractRector.php(236):
Rector\Rector\AbstractRector->refreshScopeNodes(Object(PhpParser\Node\Attribute), '/var/www/sbback...',
Object(PHPStan\Analyser\MutatingScope))
#13 vendor/rector/rector/src/Rector/AbstractRector.php(140):
Rector\Rector\AbstractRector->postRefactorProcess(Object(PhpParser\Node\Attribute),
Object(PhpParser\Node\Attribute), Object(PhpParser\Node\Attribute), '/var/www/sbback...')
#14 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(160):
Rector\Rector\AbstractRector->enterNode(Object(PhpParser\Node\Attribute))
#15 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#16 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode(Object(PhpParser\Node\AttributeGro
up))
#17 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#18 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode(Object(PhpParser\Node\Param))
#19 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#20 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\ClassMe
thod))
#21 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#22 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_)
)
#23 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#24 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Namespa
ce_))
#25 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(60):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#26 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(51):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverse(Array)
#27 vendor/rector/rector/src/Application/FileProcessor.php(95):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverse(Array)
#28 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(178):
Rector\Application\FileProcessor->processFile(Object(Rector\ValueObject\Application\File),
Object(Rector\ValueObject\Configuration))
#29 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(152):
Rector\Application\ApplicationFileProcessor->processFile(Object(Rector\ValueObject\Application\File),
Object(Rector\ValueObject\Configuration))
#30 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(128):
Rector\Application\ApplicationFileProcessor->processFiles(Array, Object(Rector\ValueObject\Configuration),
Object(Closure), Object(Closure))
#31 vendor/rector/rector/src/Console/Command/ProcessCommand.php(182):
Rector\Application\ApplicationFileProcessor->run(Object(Rector\ValueObject\Configuration),
Object(RectorPrefix202512\Symfony\Component\Console\Input\ArgvInput))
#32 vendor/rector/rector/vendor/symfony/console/Command/Command.php(289):
Rector\Console\Command\ProcessCommand->execute(Object(RectorPrefix202512\Symfony\Component\Console\Input\ArgvI
nput), Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#33 vendor/rector/rector/vendor/symfony/console/Application.php(899):
RectorPrefix202512\Symfony\Component\Console\Command\Command->run(Object(RectorPrefix202512\Symfony\Component\
Console\Input\ArgvInput), Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#34 vendor/rector/rector/vendor/symfony/console/Application.php(279):
RectorPrefix202512\Symfony\Component\Console\Application->doRunCommand(Object(Rector\Console\Command\ProcessCo
mmand), Object(RectorPrefix202512\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#35 vendor/rector/rector/src/Console/ConsoleApplication.php(60):
RectorPrefix202512\Symfony\Component\Console\Application->doRun(Object(RectorPrefix202512\Symfony\Component\Co
nsole\Input\ArgvInput), Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#36 vendor/rector/rector/vendor/symfony/console/Application.php(162):
Rector\Console\ConsoleApplication->doRun(Object(RectorPrefix202512\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#37 vendor/rector/rector/bin/rector.php(130): RectorPrefix202512\Symfony\Component\Console\Application->run()
#38 vendor/rector/rector/bin/rector(5): require_once('/var/www/projec...')
#39 bin/rector(119): include('/var/www/projec...')
#40 {main}". On line: 181
The container is running PHP 8.4 with a Symfony 7.4 app and my rector.php looks as follows:
<?php
declare(strict_types=1);
use Rector\Config\RectorConfig;
return RectorConfig::configure()
->withPreparedSets(
deadCode: true,
codeQuality: true,
codingStyle: true,
typeDeclarations: true,
typeDeclarationDocblocks: true,
privatization: true,
naming: true,
instanceOf: true,
earlyReturn: true,
)
->withPhpSets()
->withComposerBased(
twig: true,
doctrine: true,
phpunit: true,
symfony: true,
)
->withPaths([
__DIR__ . '/src',
__DIR__ . '/tests',
])
;
Since these are all Command classes the differences of the ones that fail are that these don't use the __invoke method but still the classic execute method.
Without invoke: https://symfony.com/doc/7.2/console.html#creating-a-command With invoke: https://symfony.com/doc/7.4/console.html#creating-a-command
Hi, thanks for reporting. We'll need more narrow data to be able to fix it.
Which of the sets are triggering the error? In the set, which of the rules is causing it?
After trying a few runs with commented out prepared sets it seems to be the codeQuality set. If you want me to check the rules can you point me in the right direction on how to do that?
Awesome 👍
To run specific rules from code quality set, copy rules from \Rector\Config\Level\CodeQualityLevel::RULES to your rector.php.
The error seems to pop up with the rule \Rector\CodeQuality\Rector\FuncCall\SortNamedParamRector
I created a small testcase based on the files that were failing;
<?php
declare(strict_types=1);
namespace temp;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Foo Rector test
*/
#[AsCommand(
name: 'foo',
description: 'foo thing'
)]
class Foo extends Command
{
public function __construct(
EntityManagerInterface $entityManager,
?string $name = null
) {
parent::__construct($name);
}
protected function configure(): void
{
$this->addOption(
'bar',
null,
InputOption::VALUE_REQUIRED,
'bar option'
);
}
public function execute(InputInterface $input, OutputInterface $output): int
{
parent::execute($input, $output);
}
}
In the configure method the error only occurs when adding the last parameter (bar option) to the addOption statement.
My Rector config was modified to this to make this case reproducable;
->withPaths([
__DIR__ . '/temp/Foo.php',
// __DIR__ . '/src',
// __DIR__ . '/tests',
])
->withSkip([
// SortNamedParamRector::class,
]);
So when I now skip the SortNamedParamRectorrule, the error is not occuring
seems can't be reproduced at
https://getrector.com/demo/b467dd86-42a5-40cb-87de-4cbe9de84c1b
you may need some rules to reproduce it, check collection of rules half by half.
Yes, when I disable
->withComposerBased(
twig: true,
doctrine: true,
phpunit: true,
symfony: true,
)
It runs fine. I further narrowed this down to setting symfony: true in combination with SortNamedParamRector::class resulting in this error
Could you create simple reproducible repo we can clone and verify? Thank you
I can confirm the issue.
But I think it comes from a different place.
If SortNamedParamRector is disabled, then rector can update the file.
But InvokableCommandInputAttributeRector is generating incorrect code, because symfony's Option-Attribute does not have mode as constructor argument.
https://github.com/rectorphp/rector-symfony/blob/main/rules/Symfony73/Rector/Class_/InvokableCommandInputAttributeRector.php#L100
I'm trying to replicate the situation in a clean repo, but somehow I can't find which setup is required. It seems various dependencies might be the cause.
Currently on my failing (real) project I see:
root@f4163b23a522:/var/www/sbbackend# bin/rector process --dry-run --debug
[info] Sets loaded based on installed packages:
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-bundle-23.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-bundle-28.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-40.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-42.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-orm-300.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/phpunit110.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-dependency-injection.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-serializer.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-http-foundation.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony71/symfony71-dependency-injection.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony71/symfony71-serializer.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-serializer.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-translation.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-mailer.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-http-foundation.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-console.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-security-core.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-twig-bundle.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-validator.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-console.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-framework-bundle.php
* /var/www/sbbackend/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-routing.php
[file] /var/www/sbbackend/temp/Foo.php
1 file with changes
===================
1) temp/Foo.php:18
---------- begin diff ----------
@@ @@
name: 'foo',
description: 'foo thing'
)]
-class Foo extends Command
+class Foo
{
- public function __construct(
- EntityManagerInterface $entityManager,
- ?string $name = null
- ) {
- parent::__construct($name);
- }
-
- protected function configure(): void
+ public function __construct()
{
- $this->addOption(
- 'bar',
- null,
- InputOption::VALUE_REQUIRED,
- 'bar option'
- );
}
- public function execute(InputInterface $input, OutputInterface $output): int
+ public function __invoke(
+ #[\Symfony\Component\Console\Attribute\Option(name: 'bar', mode: InputOption::VALUE_REQUIRED, description: 'bar option')]
+ $bar,
+ OutputInterface $output
+ ): int
{
- parent::execute($input, $output);
}
}
----------- end diff -----------
Applied rules:
* MakeInheritedMethodVisibilitySameAsParentRector
* RemoveUnusedConstructorParamRector
* RemoveParentCallWithoutParentRector
* InvokableCommandInputAttributeRector
While on the project I'm trying to replicate the issue it says:
[info] Sets loaded based on installed packages:
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-bundle-23.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-bundle-28.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-40.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-42.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-orm-300.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/phpunit110.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-dependency-injection.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-serializer.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-http-foundation.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony71/symfony71-dependency-injection.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony71/symfony71-serializer.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-serializer.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-translation.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-mailer.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-http-foundation.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-console.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-security-core.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-twig-bundle.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-validator.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-console.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-framework-bundle.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-routing.php
[file] /var/www/html/temp/Foo.php
1 file with changes
===================
1) temp/Foo.php:20
---------- begin diff ----------
@@ @@
)]
class Foo
{
- public function __construct()
- {
- }
-
public function __invoke(
#[\Symfony\Component\Console\Attribute\Option(name: 'bar', mode: InputOption::VALUE_REQUIRED, description: 'bar option')]
$bar,
----------- end diff -----------
Applied rules:
* RemoveEmptyClassMethodRector
I still assume I must be missing something even though I copied over most composer/config/tooling-config values from the project to my replication project.
For now I'm wondering why the Applied rules differ even though I'm using the same rulesets.
Just checking in here to let you know about this progress (or lack of it). I won't be able to work on this any further today though.
I have created a default symfony application with a simple command and rector:
https://github.com/Xirdion/test-repo
It is just a basic symfony application built using composer create-project within a ddev environment.
Running ./vendor/bin/rector --debug gives me the following error:
[info] Sets loaded based on installed packages:
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-bundle-23.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-bundle-28.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-40.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-dbal-42.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-orm-300.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/phpunit120.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-dependency-injection.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-serializer.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony70/symfony70-http-foundation.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony71/symfony71-dependency-injection.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony71/symfony71-serializer.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-serializer.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-translation.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-mailer.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony72/symfony72-http-foundation.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-console.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-security-core.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-twig-bundle.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony73/symfony73-validator.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-console.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-framework-bundle.php
* /var/www/html/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony7/symfony74/symfony74-routing.php
[file] /var/www/html/importmap.php
[file] /var/www/html/rector.php
[file] /var/www/html/src/Command/FooCommand.php
[file] /var/www/html/src/Kernel.php
[ERROR] Could not process "/var/www/html/src/Command/FooCommand.php" file, due to:
"System error: "assert($startLine > 0)"
Stack trace:
#0
phar://vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass
.php(181): assert()
#1
phar://vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionClass
.php(236): PHPStan\BetterReflection\Reflection\ReflectionClass->__construct()
#2
phar://vendor/phpstan/phpstan/phpstan.phar/src/Reflection/BetterReflection/BetterReflectionProvider.php(199):
PHPStan\BetterReflection\Reflection\ReflectionClass::createFromNode()
#3
phar://vendor/phpstan/phpstan/phpstan.phar/src/Reflection/ReflectionProvider/MemoizingReflectionProvider.php(52
): PHPStan\Reflection\BetterReflection\BetterReflectionProvider->getAnonymousClassReflection()
#4 vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(540):
PHPStan\Reflection\ReflectionProvider\MemoizingReflectionProvider->getAnonymousClassReflection()
#5 vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(180):
Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->resolveClassOrInterfaceScope()
#6 phar://vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(560):
Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->Rector\NodeTypeResolver\PHPStan\Scope\{closure
}()
#7 phar://vendor/phpstan/phpstan/phpstan.phar/src/Analyser/NodeScopeResolver.php(434):
PHPStan\Analyser\NodeScopeResolver->processStmtNode()
#8 vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(405):
PHPStan\Analyser\NodeScopeResolver->processNodes()
#9 vendor/rector/rector/src/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php(347):
Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->nodeScopeResolverProcessNodes()
#10 vendor/rector/rector/src/Application/ChangedNodeScopeRefresher.php(69):
Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver->processNodes()
#11 vendor/rector/rector/src/Rector/AbstractRector.php(246):
Rector\Application\ChangedNodeScopeRefresher->refresh()
#12 vendor/rector/rector/src/Rector/AbstractRector.php(236): Rector\Rector\AbstractRector->refreshScopeNodes()
#13 vendor/rector/rector/src/Rector/AbstractRector.php(140):
Rector\Rector\AbstractRector->postRefactorProcess()
#14 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(160):
Rector\Rector\AbstractRector->enterNode()
#15 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray()
#16 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode()
#17 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray()
#18 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode()
#19 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray()
#20 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode()
#21 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray()
#22 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode()
#23 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray()
#24 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(187):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode()
#25 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(60):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray()
#26 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(51):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverse()
#27 vendor/rector/rector/src/Application/FileProcessor.php(95):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverse()
#28 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(178):
Rector\Application\FileProcessor->processFile()
#29 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(152):
Rector\Application\ApplicationFileProcessor->processFile()
#30 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(128):
Rector\Application\ApplicationFileProcessor->processFiles()
#31 vendor/rector/rector/src/Console/Command/ProcessCommand.php(182):
Rector\Application\ApplicationFileProcessor->run()
#32 vendor/rector/rector/vendor/symfony/console/Command/Command.php(289):
Rector\Console\Command\ProcessCommand->execute()
#33 vendor/rector/rector/vendor/symfony/console/Application.php(899):
RectorPrefix202512\Symfony\Component\Console\Command\Command->run()
#34 vendor/rector/rector/vendor/symfony/console/Application.php(279):
RectorPrefix202512\Symfony\Component\Console\Application->doRunCommand()
#35 vendor/rector/rector/src/Console/ConsoleApplication.php(60):
RectorPrefix202512\Symfony\Component\Console\Application->doRun()
#36 vendor/rector/rector/vendor/symfony/console/Application.php(162):
Rector\Console\ConsoleApplication->doRun()
#37 vendor/rector/rector/bin/rector.php(130): RectorPrefix202512\Symfony\Component\Console\Application->run()
#38 vendor/rector/rector/bin/rector(5): require_once('...')
#39 vendor/bin/rector(119): include('...')
#40 {main}". On line: 181
I hope this helps you to find the root cause of the issue.