From 3122ef482389945d97c26bb3ff5c2b0b3faf867b Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Thu, 28 Mar 2024 16:09:29 +0700 Subject: [PATCH] [NodeCollector] Fix non-string value on ArrayCallableMethodMatcher::resolveClassContextType() (#5780) * [NodeCollector] Fix non-string value on ArrayCallableMethodMatcher::resolveClassContextType() * [NodeCollector] Fix non-string value on ArrayCallableMethodMatcher::resolveClassContextType() --- .../NodeAnalyzer/ArrayCallableMethodMatcher.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) 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__'; } }