diff --git a/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php b/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php index f0aebfe59db..9525a84420b 100644 --- a/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php +++ b/src/NodeCollector/NodeAnalyzer/ArrayCallableMethodMatcher.php @@ -144,6 +144,11 @@ private function resolveClassContextType( ): MixedType | ObjectType { $classConstantReference = $this->valueResolver->getValue($classContext); + // non-class value + if (! is_string($classConstantReference)) { + return new MixedType(); + } + if ($this->isRequiredClassReflectionResolution($classConstantReference)) { $classReflection = $this->reflectionResolver->resolveClassReflection($classContext); if (! $classReflection instanceof ClassReflection || ! $classReflection->isClass()) { @@ -153,11 +158,6 @@ private function resolveClassContextType( $classConstantReference = $classReflection->getName(); } - // non-class value - if (! is_string($classConstantReference)) { - return new MixedType(); - } - if (! $this->reflectionProvider->hasClass($classConstantReference)) { return new MixedType(); } @@ -208,9 +208,7 @@ private function isRequiredClassReflectionResolution(string $classConstantRefere if ($classConstantReference === ObjectReference::STATIC) { return true; } - if ($classConstantReference === '__CLASS__') { - return true; - } - return false; + + return $classConstantReference === '__CLASS__'; } }