66use PhpParser \Node \Stmt \Class_ ;
77use PhpParser \Node \Stmt \ClassMethod ;
88use PHPStan \Reflection \ClassReflection ;
9- use Rector \Core \PhpParser \Node \BetterNodeFinder ;
109use Rector \Core \Reflection \ReflectionResolver ;
1110use Rector \Core \ValueObject \MethodName ;
1211use Rector \NodeNameResolver \NodeNameResolver ;
1312final class ClassMethodManipulator
1413{
15- /**
16- * @readonly
17- * @var \Rector\Core\PhpParser\Node\BetterNodeFinder
18- */
19- private $ betterNodeFinder ;
2014 /**
2115 * @readonly
2216 * @var \Rector\NodeNameResolver\NodeNameResolver
@@ -27,9 +21,8 @@ final class ClassMethodManipulator
2721 * @var \Rector\Core\Reflection\ReflectionResolver
2822 */
2923 private $ reflectionResolver ;
30- public function __construct (BetterNodeFinder $ betterNodeFinder , NodeNameResolver $ nodeNameResolver , ReflectionResolver $ reflectionResolver )
24+ public function __construct (NodeNameResolver $ nodeNameResolver , ReflectionResolver $ reflectionResolver )
3125 {
32- $ this ->betterNodeFinder = $ betterNodeFinder ;
3326 $ this ->nodeNameResolver = $ nodeNameResolver ;
3427 $ this ->reflectionResolver = $ reflectionResolver ;
3528 }
@@ -38,14 +31,14 @@ public function isNamedConstructor(ClassMethod $classMethod) : bool
3831 if (!$ this ->nodeNameResolver ->isName ($ classMethod , MethodName::CONSTRUCT )) {
3932 return \false;
4033 }
41- $ class = $ this ->betterNodeFinder -> findParentType ($ classMethod, Class_::class );
42- if (!$ class instanceof Class_ ) {
34+ $ classReflection = $ this ->reflectionResolver -> resolveClassReflection ($ classMethod );
35+ if (!$ classReflection instanceof ClassReflection ) {
4336 return \false;
4437 }
4538 if ($ classMethod ->isPrivate ()) {
4639 return \true;
4740 }
48- if ($ class -> isFinal ()) {
41+ if ($ classReflection -> isFinalByKeyword ()) {
4942 return \false;
5043 }
5144 return $ classMethod ->isProtected ();
0 commit comments