Skip to content

Commit 6e4ecfe

Browse files
committed
Updated Rector to commit 0bfd08d038d2932ff6efb6a210a8985ac6364afa
rectorphp/rector-src@0bfd08d [NodeTypeResolver] Handle namespaced function call name on NodeTypeResolver (#6564)
1 parent c578222 commit 6e4ecfe

File tree

4 files changed

+19
-9
lines changed

4 files changed

+19
-9
lines changed

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 = '184eb2ed84405c011740792f1fee4e914e11b445';
22+
public const PACKAGE_VERSION = '0bfd08d038d2932ff6efb6a210a8985ac6364afa';
2323
/**
2424
* @api
2525
* @var string
2626
*/
27-
public const RELEASE_DATE = '2024-12-12 08:12:34';
27+
public const RELEASE_DATE = '2024-12-12 16:24:52';
2828
/**
2929
* @var int
3030
*/

src/NodeTypeResolver/NodeTypeResolver.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
use Rector\Configuration\RenamedClassesDataCollector;
4444
use Rector\Exception\ShouldNotHappenException;
4545
use Rector\NodeAnalyzer\ClassAnalyzer;
46+
use Rector\NodeNameResolver\NodeNameResolver;
4647
use Rector\NodeTypeResolver\Contract\NodeTypeResolverAwareInterface;
4748
use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface;
4849
use Rector\NodeTypeResolver\Node\AttributeKey;
@@ -78,6 +79,10 @@ final class NodeTypeResolver
7879
* @readonly
7980
*/
8081
private RenamedClassesDataCollector $renamedClassesDataCollector;
82+
/**
83+
* @readonly
84+
*/
85+
private NodeNameResolver $nodeNameResolver;
8186
/**
8287
* @var string
8388
*/
@@ -89,14 +94,15 @@ final class NodeTypeResolver
8994
/**
9095
* @param NodeTypeResolverInterface[] $nodeTypeResolvers
9196
*/
92-
public function __construct(ObjectTypeSpecifier $objectTypeSpecifier, ClassAnalyzer $classAnalyzer, GenericClassStringTypeCorrector $genericClassStringTypeCorrector, ReflectionProvider $reflectionProvider, AccessoryNonEmptyStringTypeCorrector $accessoryNonEmptyStringTypeCorrector, RenamedClassesDataCollector $renamedClassesDataCollector, iterable $nodeTypeResolvers)
97+
public function __construct(ObjectTypeSpecifier $objectTypeSpecifier, ClassAnalyzer $classAnalyzer, GenericClassStringTypeCorrector $genericClassStringTypeCorrector, ReflectionProvider $reflectionProvider, AccessoryNonEmptyStringTypeCorrector $accessoryNonEmptyStringTypeCorrector, RenamedClassesDataCollector $renamedClassesDataCollector, NodeNameResolver $nodeNameResolver, iterable $nodeTypeResolvers)
9398
{
9499
$this->objectTypeSpecifier = $objectTypeSpecifier;
95100
$this->classAnalyzer = $classAnalyzer;
96101
$this->genericClassStringTypeCorrector = $genericClassStringTypeCorrector;
97102
$this->reflectionProvider = $reflectionProvider;
98103
$this->accessoryNonEmptyStringTypeCorrector = $accessoryNonEmptyStringTypeCorrector;
99104
$this->renamedClassesDataCollector = $renamedClassesDataCollector;
105+
$this->nodeNameResolver = $nodeNameResolver;
100106
foreach ($nodeTypeResolvers as $nodeTypeResolver) {
101107
if ($nodeTypeResolver instanceof NodeTypeResolverAwareInterface) {
102108
$nodeTypeResolver->autowire($this);
@@ -479,10 +485,11 @@ private function resolveNativeTypeWithBuiltinMethodCallFallback(Expr $expr, Scop
479485
if (!$expr->name instanceof Name) {
480486
return $scope->getNativeType($expr);
481487
}
482-
if (!$this->reflectionProvider->hasFunction($expr->name, $scope)) {
488+
$functionName = new Name((string) $this->nodeNameResolver->getName($expr));
489+
if (!$this->reflectionProvider->hasFunction($functionName, $scope)) {
483490
return $scope->getNativeType($expr);
484491
}
485-
$functionReflection = $this->reflectionProvider->getFunction($expr->name, $scope);
492+
$functionReflection = $this->reflectionProvider->getFunction($functionName, $scope);
486493
if (!$functionReflection instanceof NativeFunctionReflection) {
487494
return $scope->getNativeType($expr);
488495
}

src/PhpParser/AstResolver.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use PhpParser\Node\Expr\MethodCall;
1010
use PhpParser\Node\Expr\NullsafeMethodCall;
1111
use PhpParser\Node\Expr\StaticCall;
12+
use PhpParser\Node\Name;
1213
use PhpParser\Node\Param;
1314
use PhpParser\Node\Stmt;
1415
use PhpParser\Node\Stmt\Class_;
@@ -340,10 +341,11 @@ private function resolveFunctionFromFuncCall(FuncCall $funcCall, Scope $scope) :
340341
if ($funcCall->name instanceof Expr) {
341342
return null;
342343
}
343-
if (!$this->reflectionProvider->hasFunction($funcCall->name, $scope)) {
344+
$functionName = new Name((string) $this->nodeNameResolver->getName($funcCall));
345+
if (!$this->reflectionProvider->hasFunction($functionName, $scope)) {
344346
return null;
345347
}
346-
$functionReflection = $this->reflectionProvider->getFunction($funcCall->name, $scope);
348+
$functionReflection = $this->reflectionProvider->getFunction($functionName, $scope);
347349
return $this->resolveFunctionFromFunctionReflection($functionReflection);
348350
}
349351
}

src/Reflection/ReflectionResolver.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,9 @@ private function resolveFunctionReflectionFromFuncCall(FuncCall $funcCall)
263263
if (!$funcCall->name instanceof Name) {
264264
return null;
265265
}
266-
if ($this->reflectionProvider->hasFunction($funcCall->name, $scope)) {
267-
return $this->reflectionProvider->getFunction($funcCall->name, $scope);
266+
$functionName = new Name((string) $this->nodeNameResolver->getName($funcCall));
267+
if ($this->reflectionProvider->hasFunction($functionName, $scope)) {
268+
return $this->reflectionProvider->getFunction($functionName, $scope);
268269
}
269270
return null;
270271
}

0 commit comments

Comments
 (0)