55use PhpParser \Node ;
66use PhpParser \Node \Expr \PropertyFetch ;
77use PHPStan \Analyser \Scope ;
8- use PHPStan \Broker \Broker ;
98use PHPStan \Reflection \ClassReflection ;
9+ use PHPStan \Reflection \ReflectionProvider ;
1010use PHPStan \Rules \Rule ;
11- use PHPStan \Type \TypeUtils ;
1211use PHPStan \Type \VerbosityLevel ;
1312use function sprintf ;
1413
1514class VariablePropertyFetchRule implements Rule
1615{
1716
18- /** @var Broker */
19- private $ broker ;
17+ /** @var ReflectionProvider */
18+ private $ reflectionProvider ;
2019
2120 /** @var string[] */
2221 private $ universalObjectCratesClasses ;
2322
2423 /**
2524 * @param string[] $universalObjectCratesClasses
2625 */
27- public function __construct (Broker $ broker , array $ universalObjectCratesClasses )
26+ public function __construct (ReflectionProvider $ reflectionProvider , array $ universalObjectCratesClasses )
2827 {
29- $ this ->broker = $ broker ;
28+ $ this ->reflectionProvider = $ reflectionProvider ;
3029 $ this ->universalObjectCratesClasses = $ universalObjectCratesClasses ;
3130 }
3231
@@ -46,12 +45,12 @@ public function processNode(Node $node, Scope $scope): array
4645 }
4746
4847 $ fetchedOnType = $ scope ->getType ($ node ->var );
49- foreach (TypeUtils:: getDirectClassNames ( $ fetchedOnType ) as $ referencedClass ) {
50- if (!$ this ->broker ->hasClass ($ referencedClass )) {
48+ foreach ($ fetchedOnType-> getObjectClassNames ( ) as $ referencedClass ) {
49+ if (!$ this ->reflectionProvider ->hasClass ($ referencedClass )) {
5150 continue ;
5251 }
5352
54- if ($ this ->isUniversalObjectCrate ($ this ->broker ->getClass ($ referencedClass ))) {
53+ if ($ this ->isUniversalObjectCrate ($ this ->reflectionProvider ->getClass ($ referencedClass ))) {
5554 return [];
5655 }
5756 }
@@ -69,7 +68,7 @@ private function isUniversalObjectCrate(
6968 ): bool
7069 {
7170 foreach ($ this ->universalObjectCratesClasses as $ className ) {
72- if (!$ this ->broker ->hasClass ($ className )) {
71+ if (!$ this ->reflectionProvider ->hasClass ($ className )) {
7372 continue ;
7473 }
7574
0 commit comments