Updated Rector to commit a8d0dbeb7191d57af0ac9068adf644730f728c83

a8d0dbeb71 Add const fetch to class const fetch rector. (#5627)
This commit is contained in:
Tomas Votruba 2024-02-18 09:11:32 +00:00
parent 2f5015d654
commit b3c461facb
5 changed files with 92 additions and 2 deletions

View File

@ -0,0 +1,44 @@
<?php
namespace Rector\Transform\Rector\ConstFetch;
use PhpParser\Node;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Rector\AbstractRector;
use Rector\Transform\ValueObject\ConstFetchToClassConstFetch;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
use RectorPrefix202402\Webmozart\Assert\Assert;
/**
* @see Rector\Tests\Transform\Rector\ConstFetch\ConstFetchToClassConstFetchRector\ConstFetchToClassConstFetchTest
*/
final class ConstFetchToClassConstFetchRector extends AbstractRector implements ConfigurableRectorInterface
{
/**
* @var ConstFetchToClassConstFetch[]
*/
private $constFetchToClassConsts = [];
public function getRuleDefinition() : RuleDefinition
{
return new RuleDefinition('Change const fetch to class const fetch', [new ConfiguredCodeSample('$x = CONTEXT_COURSE', '$x = course::LEVEL', [new ConstFetchToClassConstFetch('CONTEXT_COURSE', 'course', 'LEVEL')])]);
}
public function getNodeTypes() : array
{
return [Node\Expr\ConstFetch::class];
}
public function refactor(Node $node)
{
foreach ($this->constFetchToClassConsts as $constFetchToClassConst) {
if (!$this->isName($node, $constFetchToClassConst->getOldConstName())) {
continue;
}
return $this->nodeFactory->createClassConstFetch($constFetchToClassConst->getNewClassName(), $constFetchToClassConst->getNewConstName());
}
return null;
}
public function configure(array $configuration) : void
{
Assert::allIsAOf($configuration, ConstFetchToClassConstFetch::class);
$this->constFetchToClassConsts = $configuration;
}
}

View File

@ -0,0 +1,42 @@
<?php
declare (strict_types=1);
namespace Rector\Transform\ValueObject;
use Rector\Validation\RectorAssert;
final class ConstFetchToClassConstFetch
{
/**
* @var string
*/
private $oldConstName;
/**
* @var string
*/
private $newClassName;
/**
* @var string
*/
private $newConstName;
public function __construct(string $oldConstName, string $newClassName, string $newConstName)
{
$this->oldConstName = $oldConstName;
$this->newClassName = $newClassName;
$this->newConstName = $newConstName;
RectorAssert::constantName($oldConstName);
RectorAssert::className($newClassName);
RectorAssert::constantName($newConstName);
}
public function getOldConstName() : string
{
return $this->oldConstName;
}
public function getNewClassName() : string
{
return $this->newClassName;
}
public function getNewConstName() : string
{
return $this->newConstName;
}
}

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = 'a4f28525c9df28ed142eabe1cde70035715fa785';
public const PACKAGE_VERSION = 'a8d0dbeb7191d57af0ac9068adf644730f728c83';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2024-02-18 07:31:15';
public const RELEASE_DATE = '2024-02-18 10:09:06';
/**
* @var int
*/

View File

@ -2290,6 +2290,7 @@ return array(
'Rector\\Transform\\Rector\\Class_\\AddInterfaceByTraitRector' => $baseDir . '/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php',
'Rector\\Transform\\Rector\\Class_\\MergeInterfacesRector' => $baseDir . '/rules/Transform/Rector/Class_/MergeInterfacesRector.php',
'Rector\\Transform\\Rector\\Class_\\ParentClassToTraitsRector' => $baseDir . '/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php',
'Rector\\Transform\\Rector\\ConstFetch\\ConstFetchToClassConstFetchRector' => $baseDir . '/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php',
'Rector\\Transform\\Rector\\FileWithoutNamespace\\RectorConfigBuilderRector' => $baseDir . '/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php',
'Rector\\Transform\\Rector\\FuncCall\\FuncCallToConstFetchRector' => $baseDir . '/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php',
'Rector\\Transform\\Rector\\FuncCall\\FuncCallToMethodCallRector' => $baseDir . '/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php',
@ -2306,6 +2307,7 @@ return array(
'Rector\\Transform\\Rector\\String_\\StringToClassConstantRector' => $baseDir . '/rules/Transform/Rector/String_/StringToClassConstantRector.php',
'Rector\\Transform\\ValueObject\\AttributeKeyToClassConstFetch' => $baseDir . '/rules/Transform/ValueObject/AttributeKeyToClassConstFetch.php',
'Rector\\Transform\\ValueObject\\ClassMethodReference' => $baseDir . '/rules/Transform/ValueObject/ClassMethodReference.php',
'Rector\\Transform\\ValueObject\\ConstFetchToClassConstFetch' => $baseDir . '/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php',
'Rector\\Transform\\ValueObject\\FuncCallToMethodCall' => $baseDir . '/rules/Transform/ValueObject/FuncCallToMethodCall.php',
'Rector\\Transform\\ValueObject\\FuncCallToStaticCall' => $baseDir . '/rules/Transform/ValueObject/FuncCallToStaticCall.php',
'Rector\\Transform\\ValueObject\\MethodCallToFuncCall' => $baseDir . '/rules/Transform/ValueObject/MethodCallToFuncCall.php',

View File

@ -2509,6 +2509,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54
'Rector\\Transform\\Rector\\Class_\\AddInterfaceByTraitRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php',
'Rector\\Transform\\Rector\\Class_\\MergeInterfacesRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Class_/MergeInterfacesRector.php',
'Rector\\Transform\\Rector\\Class_\\ParentClassToTraitsRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php',
'Rector\\Transform\\Rector\\ConstFetch\\ConstFetchToClassConstFetchRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/ConstFetch/ConstFetchToClassConstFetchRector.php',
'Rector\\Transform\\Rector\\FileWithoutNamespace\\RectorConfigBuilderRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/FileWithoutNamespace/RectorConfigBuilderRector.php',
'Rector\\Transform\\Rector\\FuncCall\\FuncCallToConstFetchRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php',
'Rector\\Transform\\Rector\\FuncCall\\FuncCallToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php',
@ -2525,6 +2526,7 @@ class ComposerStaticInit2d887a2f87c676eb32b3e04612865e54
'Rector\\Transform\\Rector\\String_\\StringToClassConstantRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/String_/StringToClassConstantRector.php',
'Rector\\Transform\\ValueObject\\AttributeKeyToClassConstFetch' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/AttributeKeyToClassConstFetch.php',
'Rector\\Transform\\ValueObject\\ClassMethodReference' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/ClassMethodReference.php',
'Rector\\Transform\\ValueObject\\ConstFetchToClassConstFetch' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/ConstFetchToClassConstFetch.php',
'Rector\\Transform\\ValueObject\\FuncCallToMethodCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/FuncCallToMethodCall.php',
'Rector\\Transform\\ValueObject\\FuncCallToStaticCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/FuncCallToStaticCall.php',
'Rector\\Transform\\ValueObject\\MethodCallToFuncCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/MethodCallToFuncCall.php',