4343use Rector \Configuration \RenamedClassesDataCollector ;
4444use Rector \Exception \ShouldNotHappenException ;
4545use Rector \NodeAnalyzer \ClassAnalyzer ;
46+ use Rector \NodeNameResolver \NodeNameResolver ;
4647use Rector \NodeTypeResolver \Contract \NodeTypeResolverAwareInterface ;
4748use Rector \NodeTypeResolver \Contract \NodeTypeResolverInterface ;
4849use 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 }
0 commit comments