44
55use PhpParser \Node \Expr \MethodCall ;
66use PHPStan \Analyser \Scope ;
7+ use PHPStan \PhpDoc \TypeStringResolver ;
78use PHPStan \Reflection \MethodReflection ;
89use PHPStan \Reflection \ParametersAcceptorSelector ;
910use PHPStan \Type \DynamicMethodReturnTypeExtension ;
1011use PHPStan \Type \Type ;
11- use SaschaEgerer \PhpstanTypo3 \Helpers \TypeNamingUtility ;
1212
1313class SiteDynamicReturnTypeExtension implements DynamicMethodReturnTypeExtension
1414{
1515
1616 /** @var array<string, string> */
1717 private $ siteApiGetAttributeMapping ;
1818
19+ /** @var TypeStringResolver */
20+ private $ typeStringResolver ;
21+
1922 /**
2023 * @param array<string, string> $siteApiGetAttributeMapping
2124 */
22- public function __construct (array $ siteApiGetAttributeMapping )
25+ public function __construct (array $ siteApiGetAttributeMapping, TypeStringResolver $ typeStringResolver )
2326 {
2427 $ this ->siteApiGetAttributeMapping = $ siteApiGetAttributeMapping ;
28+ $ this ->typeStringResolver = $ typeStringResolver ;
2529 }
2630
2731 public function getClass (): string
@@ -42,11 +46,7 @@ public function getTypeFromMethodCall(
4246 }
4347
4448 if (isset ($ this ->siteApiGetAttributeMapping [$ argument ->value ->value ])) {
45-
46- $ phpType = TypeNamingUtility::translateTypeNameToType ($ this ->siteApiGetAttributeMapping [$ argument ->value ->value ]);
47- if ($ phpType !== null ) {
48- return $ phpType ;
49- }
49+ return $ this ->typeStringResolver ->resolve ($ this ->siteApiGetAttributeMapping [$ argument ->value ->value ]);
5050 }
5151
5252 return ParametersAcceptorSelector::selectSingle ($ methodReflection ->getVariants ())->getReturnType ();
0 commit comments