Hello, I have this error when I run
php vendor/bin/rector process src --dry-run
[ERROR] Could not process
"{path}\src\Service\DataManager\Abstracts\AbstractDataManager.php" file, due to:
"System error: "Scope not available on "PhpParser\Node\Name\FullyQualified" node with parent node of
"PhpParser\Node\Stmt\TraitUseAdaptation\Precedence", but is required by a refactorWithScope() method of
"Rector\Renaming\Rector\Name\RenameClassRector" rule. Fix scope refresh on changed nodes first"
But it used to works some days ago. I don't particularly need to update this file, it is already updated. But I wonder why I get this error now.
For this file
<?php
namespace App\Service\DataManager\Abstracts;
use App\Service\DataManager\Traits\LockDelete;
use App\Service\DataManager\Traits\LockRemove;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Contracts\Service\Attribute\Required;
abstract class AbstractDataManager
{
use LockDelete, LockRemove {
LockDelete::extractObjectsId insteadof LockRemove;
LockDelete::extractBaseObjects insteadof LockRemove;
}
protected ?Request $request = null;
/** @var ServiceEntityRepository */
protected $repository;
public function __construct(
protected readonly EntityManagerInterface $em,
RequestStack $requestStack
) {
$this->request = $requestStack->getCurrentRequest();
}
#[Required]
abstract public function setRepository();
}
With -- debug :
#0 {path}\vendor\rector\rector\src\Rector\AbstractRector.php(234):
Rector\Core\Rector\AbstractScopeAwareRector->refactor(Object(PhpParser\Node\Name\FullyQualified))
#1
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(113): Rector\Core\Rector\AbstractRector->enterNode(Object(PhpParser\Node\Name\FullyQualified))
#2
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(196):
PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\TraitUseAdaptation\Precedence))
#3
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(105): PhpParser\NodeTraverser->traverseArray(Array)
#4
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(196): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\TraitUse))
#5
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(105): PhpParser\NodeTraverser->traverseArray(Array)
#6
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(196): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_))
#7
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(105): PhpParser\NodeTraverser->traverseArray(Array)
#8
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(196): PhpParser\NodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Namespace_))
#9
{path}\vendor\rector\rector\vendor\nikic\php-parser\lib\PhpParser\NodeTraverser.p
hp(85): PhpParser\NodeTraverser->traverseArray(Array)
#10
{path}\vendor\rector\rector\src\PhpParser\NodeTraverser\RectorNodeTraverser.php(4
2): PhpParser\NodeTraverser->traverse(Array)
#11 {path}\vendor\rector\rector\src\Application\FileProcessor.php(60):
Rector\Core\PhpParser\NodeTraverser\RectorNodeTraverser->traverse(Array)
#12
{path}\vendor\rector\rector\src\Application\FileProcessor\PhpFileProcessor.php(11
5): Rector\Core\Application\FileProcessor->refactor(Object(Rector\Core\ValueObject\Application\File),
Object(Rector\Core\ValueObject\Configuration))
#13 {path}\vendor\rector\rector\packages\Parallel\WorkerRunner.php(144):
Rector\Core\Application\FileProcessor\PhpFileProcessor->process(Object(Rector\Core\ValueObject\Applica
tion\File), Object(Rector\Core\ValueObject\Configuration))
#14 {path}\vendor\rector\rector\packages\Parallel\WorkerRunner.php(114):
Rector\Parallel\WorkerRunner->processFile(Object(Rector\Core\ValueObject\Application\File),
Object(Rector\Core\ValueObject\Configuration), Array)
#15
{path}\vendor\rector\rector\vendor\evenement\evenement\src\Evenement\EventEmitter
Trait.php(97): Rector\Parallel\WorkerRunner->Rector\Parallel\{closure}(Array)
#16 {path}\vendor\rector\rector\vendor\clue\ndjson-react\src\Decoder.php(117):
RectorPrefix202306\Evenement\EventEmitter->emit('data', Array)
#17
{path}\vendor\rector\rector\vendor\evenement\evenement\src\Evenement\EventEmitter
Trait.php(97): RectorPrefix202306\Clue\React\NDJson\Decoder->handleData(Array)
#18 {path}\vendor\rector\rector\vendor\react\stream\src\Util.php(62):
RectorPrefix202306\Evenement\EventEmitter->emit('data', Array)
#19
{path}\vendor\rector\rector\vendor\evenement\evenement\src\Evenement\EventEmitter
Trait.php(97):
RectorPrefix202306\React\Stream\Util::RectorPrefix202306\React\Stream\{closure}('{"action":"main...')
#20
{path}\vendor\rector\rector\vendor\react\stream\src\DuplexResourceStream.php(154)
: RectorPrefix202306\Evenement\EventEmitter->emit('data', Array)
#21
{path}\vendor\rector\rector\vendor\react\event-loop\src\StreamSelectLoop.php(201)
: RectorPrefix202306\React\Stream\DuplexResourceStream->handleData(Resource id #2861)
#22
{path}\vendor\rector\rector\vendor\react\event-loop\src\StreamSelectLoop.php(173)
: RectorPrefix202306\React\EventLoop\StreamSelectLoop->waitForStreamActivity(NULL)
#23 {path}\vendor\rector\rector\src\Console\Command\WorkerCommand.php(63):
RectorPrefix202306\React\EventLoop\StreamSelectLoop->run()
#24 {path}\vendor\rector\rector\vendor\symfony\console\Command\Command.php(325):
Rector\Core\Console\Command\WorkerCommand->execute(Object(RectorPrefix202306\Symfony\Component\Console
\Input\ArgvInput), Object(RectorPrefix202306\Symfony\Component\Console\Output\ConsoleOutput))
#25 {path}\vendor\rector\rector\vendor\symfony\console\Application.php(944):
RectorPrefix202306\Symfony\Component\Console\Command\Command->run(Object(RectorPrefix202306\Symfony\Co
mponent\Console\Input\ArgvInput),
Object(RectorPrefix202306\Symfony\Component\Console\Output\ConsoleOutput))
#26 {path}\vendor\rector\rector\vendor\symfony\console\Application.php(326):
RectorPrefix202306\Symfony\Component\Console\Application->doRunCommand(Object(Rector\Core\Console\Comm
and\WorkerCommand), Object(RectorPrefix202306\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202306\Symfony\Component\Console\Output\ConsoleOutput))
#27 {path}\vendor\rector\rector\src\Console\ConsoleApplication.php(49):
RectorPrefix202306\Symfony\Component\Console\Application->doRun(Object(RectorPrefix202306\Symfony\Comp
onent\Console\Input\ArgvInput),
Object(RectorPrefix202306\Symfony\Component\Console\Output\ConsoleOutput))
#28 {path}\vendor\rector\rector\vendor\symfony\console\Application.php(212):
Rector\Core\Console\ConsoleApplication->doRun(Object(RectorPrefix202306\Symfony\Component\Console\Inpu
t\ArgvInput), Object(RectorPrefix202306\Symfony\Component\Console\Output\ConsoleOutput))
#29 {path}\vendor\rector\rector\bin\rector.php(132):
RectorPrefix202306\Symfony\Component\Console\Application->run()
#30 {path}\vendor\rector\rector\bin\rector(5):
require_once('...')
#31 {path}\vendor\bin\rector(120): include('...')
#32 {main}". On line: 53
rector file :
<?php
declare(strict_types=1);
use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
use Rector\Config\RectorConfig;
use Rector\Php73\Rector\BooleanOr\IsCountableRector;
use Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector;
use Rector\Set\ValueObject\LevelSetList;
use Rector\Doctrine\Set\DoctrineSetList;
use Rector\Php56\Rector\FunctionLike\AddDefaultValueForUndefinedVariableRector;
use Rector\Php70\Rector\MethodCall\ThisCallOnStaticMethodToStaticCallRector;
use Rector\Php71\Rector\BinaryOp\BinaryOpBetweenNumberAndStringRector;
use Rector\Php71\Rector\FuncCall\CountOnNullRector;
use Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector;
use Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector;
use Rector\Php74\Rector\LNumber\AddLiteralSeparatorToNumberRector;
use Rector\Php80\Rector\Switch_\ChangeSwitchToMatchRector;
use Rector\Php81\Rector\FuncCall\NullToStrictStringFuncCallArgRector;
use Rector\Set\ValueObject\SetList;
use Rector\Symfony\Set\SymfonySetList;
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->paths([
__DIR__ . '/src'
]);
// register a single rule
$rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);
$rectorConfig->skip([
IsCountableRector::class,
CountOnNullRector::class,
StringifyStrNeedlesRector::class,
NullToStrictStringFuncCallArgRector::class,
JsonThrowOnErrorRector::class,
AddDefaultValueForUndefinedVariableRector::class,
ChangeSwitchToMatchRector::class,
ThisCallOnStaticMethodToStaticCallRector::class,
RemoveExtraParametersRector::class,
AddLiteralSeparatorToNumberRector::class,
BinaryOpBetweenNumberAndStringRector::class,
]);
// define sets of rules
$rectorConfig->sets([
LevelSetList::UP_TO_PHP_82,
SetList::PHP_82,
SymfonySetList::SYMFONY_62,
DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,
SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES,
]);
};
Hello, I have this error when I run
php vendor/bin/rector process src --dry-runBut it used to works some days ago. I don't particularly need to update this file, it is already updated. But I wonder why I get this error now.
For this file
With -- debug :
rector file :