Skip to content

Commit db74d7f

Browse files
committed
Updated Rector to commit badcffc946057eac210b7bd3c16a4c952721b9be
rectorphp/rector-src@badcffc [Arguments] Skip self class const fetch inside this class target replacement on ReplaceArgumentDefaultValueRector (#7940)
1 parent 403db02 commit db74d7f

File tree

4 files changed

+25
-8
lines changed

4 files changed

+25
-8
lines changed

rules/Arguments/ArgumentDefaultValueReplacer.php

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,17 @@
1212
use PhpParser\Node\Expr\New_;
1313
use PhpParser\Node\Expr\StaticCall;
1414
use PhpParser\Node\Expr\Variable;
15+
use PhpParser\Node\Identifier;
16+
use PhpParser\Node\Name;
1517
use PhpParser\Node\Stmt\ClassMethod;
1618
use Rector\Arguments\Contract\ReplaceArgumentDefaultValueInterface;
1719
use Rector\Arguments\ValueObject\ReplaceArgumentDefaultValue;
1820
use Rector\NodeAnalyzer\ArgsAnalyzer;
21+
use Rector\NodeTypeResolver\NodeTypeResolver;
1922
use Rector\PhpParser\AstResolver;
2023
use Rector\PhpParser\Node\NodeFactory;
2124
use Rector\PhpParser\Node\Value\ValueResolver;
25+
use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType;
2226
final class ArgumentDefaultValueReplacer
2327
{
2428
/**
@@ -37,12 +41,17 @@ final class ArgumentDefaultValueReplacer
3741
* @readonly
3842
*/
3943
private AstResolver $astResolver;
40-
public function __construct(NodeFactory $nodeFactory, ValueResolver $valueResolver, ArgsAnalyzer $argsAnalyzer, AstResolver $astResolver)
44+
/**
45+
* @readonly
46+
*/
47+
private NodeTypeResolver $nodeTypeResolver;
48+
public function __construct(NodeFactory $nodeFactory, ValueResolver $valueResolver, ArgsAnalyzer $argsAnalyzer, AstResolver $astResolver, NodeTypeResolver $nodeTypeResolver)
4149
{
4250
$this->nodeFactory = $nodeFactory;
4351
$this->valueResolver = $valueResolver;
4452
$this->argsAnalyzer = $argsAnalyzer;
4553
$this->astResolver = $astResolver;
54+
$this->nodeTypeResolver = $nodeTypeResolver;
4655
}
4756
/**
4857
* @template TCall as (MethodCall|StaticCall|ClassMethod|FuncCall|New_)
@@ -139,7 +148,15 @@ private function processArgs($expr, ReplaceArgumentDefaultValueInterface $replac
139148
}
140149
$argValue = $this->valueResolver->getValue($particularArg->value);
141150
if (is_scalar($replaceArgumentDefaultValue->getValueBefore()) && $argValue === $replaceArgumentDefaultValue->getValueBefore()) {
142-
$particularArg->value = $this->normalizeValue($replaceArgumentDefaultValue->getValueAfter());
151+
$normalizedValueAfter = $this->normalizeValue($replaceArgumentDefaultValue->getValueAfter());
152+
if ($particularArg->value instanceof ClassConstFetch && $particularArg->value->class instanceof Name && $particularArg->value->class->isSpecialClassName() && $normalizedValueAfter instanceof ClassConstFetch && is_string($replaceArgumentDefaultValue->getValueAfter()) && strpos($replaceArgumentDefaultValue->getValueAfter(), '::') !== \false) {
153+
[$targetClass, $targetConstant] = explode('::', $replaceArgumentDefaultValue->getValueAfter());
154+
$type = $this->nodeTypeResolver->getType($particularArg->value->class);
155+
if ($type instanceof FullyQualifiedObjectType && $type->getClassName() === $targetClass && $particularArg->value->name instanceof Identifier && $particularArg->value->name->toString() === $targetConstant) {
156+
return null;
157+
}
158+
}
159+
$particularArg->value = $normalizedValueAfter;
143160
return $expr;
144161
}
145162
if (is_array($replaceArgumentDefaultValue->getValueBefore())) {

src/Application/VersionResolver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ final class VersionResolver
1919
* @api
2020
* @var string
2121
*/
22-
public const PACKAGE_VERSION = 'd9133842a6df2ed3141cad1b5043a7a567165045';
22+
public const PACKAGE_VERSION = 'badcffc946057eac210b7bd3c16a4c952721b9be';
2323
/**
2424
* @api
2525
* @var string
2626
*/
27-
public const RELEASE_DATE = '2026-03-27 12:04:47';
27+
public const RELEASE_DATE = '2026-03-28 15:09:27';
2828
/**
2929
* @var int
3030
*/

src/Caching/Config/FileHashComputer.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ public function compute(string $filePath): string
3434
private function computeExtensionHash(): string
3535
{
3636
$extensionHash = '';
37-
foreach ($this->cacheMetaExtensions as $cacheMetaExtension) {
38-
$extensionHash .= $cacheMetaExtension->getKey() . ':' . $cacheMetaExtension->getHash();
37+
foreach ($this->cacheMetaExtensions as $cacheMetumExtension) {
38+
$extensionHash .= $cacheMetumExtension->getKey() . ':' . $cacheMetumExtension->getHash();
3939
}
4040
return $extensionHash;
4141
}

src/Configuration/RectorConfigBuilder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ public function __invoke(RectorConfig $rectorConfig): void
227227
if ($this->containerCacheDirectory !== null) {
228228
$rectorConfig->containerCacheDirectory($this->containerCacheDirectory);
229229
}
230-
foreach ($this->cacheMetaExtensions as $cacheMetaExtensionClass) {
231-
$rectorConfig->cacheMetaExtension($cacheMetaExtensionClass);
230+
foreach ($this->cacheMetaExtensions as $cacheMetumExtension) {
231+
$rectorConfig->cacheMetaExtension($cacheMetumExtension);
232232
}
233233
if ($this->importNames || $this->importDocBlockNames) {
234234
$rectorConfig->importNames($this->importNames, $this->importDocBlockNames);

0 commit comments

Comments
 (0)