5
5
use PhpParser \Node ;
6
6
use PhpParser \Node \Expr \PropertyFetch ;
7
7
use PHPStan \Analyser \Scope ;
8
- use PHPStan \Broker \Broker ;
9
8
use PHPStan \Reflection \ClassReflection ;
9
+ use PHPStan \Reflection \ReflectionProvider ;
10
10
use PHPStan \Rules \Rule ;
11
- use PHPStan \Type \TypeUtils ;
12
11
use PHPStan \Type \VerbosityLevel ;
13
12
use function sprintf ;
14
13
15
14
class VariablePropertyFetchRule implements Rule
16
15
{
17
16
18
- /** @var Broker */
19
- private $ broker ;
17
+ /** @var ReflectionProvider */
18
+ private $ reflectionProvider ;
20
19
21
20
/** @var string[] */
22
21
private $ universalObjectCratesClasses ;
23
22
24
23
/**
25
24
* @param string[] $universalObjectCratesClasses
26
25
*/
27
- public function __construct (Broker $ broker , array $ universalObjectCratesClasses )
26
+ public function __construct (ReflectionProvider $ reflectionProvider , array $ universalObjectCratesClasses )
28
27
{
29
- $ this ->broker = $ broker ;
28
+ $ this ->reflectionProvider = $ reflectionProvider ;
30
29
$ this ->universalObjectCratesClasses = $ universalObjectCratesClasses ;
31
30
}
32
31
@@ -46,12 +45,12 @@ public function processNode(Node $node, Scope $scope): array
46
45
}
47
46
48
47
$ 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 )) {
51
50
continue ;
52
51
}
53
52
54
- if ($ this ->isUniversalObjectCrate ($ this ->broker ->getClass ($ referencedClass ))) {
53
+ if ($ this ->isUniversalObjectCrate ($ this ->reflectionProvider ->getClass ($ referencedClass ))) {
55
54
return [];
56
55
}
57
56
}
@@ -69,7 +68,7 @@ private function isUniversalObjectCrate(
69
68
): bool
70
69
{
71
70
foreach ($ this ->universalObjectCratesClasses as $ className ) {
72
- if (!$ this ->broker ->hasClass ($ className )) {
71
+ if (!$ this ->reflectionProvider ->hasClass ($ className )) {
73
72
continue ;
74
73
}
75
74
0 commit comments