Skip to content

Commit f846cd5

Browse files
committed
allow from other base class
1 parent 046074b commit f846cd5

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

rules/Arguments/ArgumentDefaultValueReplacer.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@
1515
use PhpParser\Node\Expr\Variable;
1616
use PhpParser\Node\Name;
1717
use PhpParser\Node\Stmt\ClassMethod;
18-
use PHPStan\Reflection\ClassReflection;
1918
use Rector\Arguments\Contract\ReplaceArgumentDefaultValueInterface;
2019
use Rector\Arguments\ValueObject\ReplaceArgumentDefaultValue;
2120
use Rector\NodeAnalyzer\ArgsAnalyzer;
2221
use Rector\NodeTypeResolver\NodeTypeResolver;
2322
use Rector\PhpParser\AstResolver;
2423
use Rector\PhpParser\Node\NodeFactory;
2524
use Rector\PhpParser\Node\Value\ValueResolver;
26-
use Rector\PHPStan\ScopeFetcher;
2725
use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType;
2826

2927
final readonly class ArgumentDefaultValueReplacer
@@ -159,14 +157,16 @@ private function processArgs(
159157
if (is_scalar(
160158
$replaceArgumentDefaultValue->getValueBefore()
161159
) && $argValue === $replaceArgumentDefaultValue->getValueBefore()) {
162-
$scope = ScopeFetcher::fetch($particularArg);
163-
if ($scope->getClassReflection() instanceof ClassReflection
164-
&& $particularArg->value instanceof ClassConstFetch
160+
if ($particularArg->value instanceof ClassConstFetch
165161
&& $particularArg->value->class instanceof Name
166-
&& $particularArg->value->class->isSpecialClassName()) {
167-
$classReflection = $scope->getClassReflection();
162+
&& $particularArg->value->class->isSpecialClassName()
163+
&& is_string($replaceArgumentDefaultValue->getValueAfter())
164+
&& str_contains($replaceArgumentDefaultValue->getValueAfter(), '::')) {
165+
[$targetClass, $targetConstant] = explode('::', $replaceArgumentDefaultValue->getValueAfter());
168166
$type = $this->nodeTypeResolver->getType($particularArg->value->class);
169-
if ($type instanceof FullyQualifiedObjectType && $classReflection->getName() === $type->getClassName()) {
167+
if ($type instanceof FullyQualifiedObjectType
168+
&& $type->getClassName() === $targetClass
169+
&& $particularArg->value->name->toString() === $targetConstant) {
170170
return null;
171171
}
172172
}

0 commit comments

Comments
 (0)