Skip to content

System error $startLine > 0 #9548

@Martin1982

Description

@Martin1982

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

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