diff --git a/rules/TypeDeclaration/NodeManipulator/AddNeverReturnType.php b/rules/TypeDeclaration/NodeManipulator/AddNeverReturnType.php index 09e4a1e259..2c8b9faaa7 100644 --- a/rules/TypeDeclaration/NodeManipulator/AddNeverReturnType.php +++ b/rules/TypeDeclaration/NodeManipulator/AddNeverReturnType.php @@ -45,6 +45,8 @@ public function add(ClassMethod|Function_|Closure $node, Scope $scope): ClassMet private function shouldSkip(ClassMethod | Function_ | Closure $node, Scope $scope): bool { + // already has return type, and non-void + // it can be "never" return itself, or other return type if ($node->returnType instanceof Node && ! $this->nodeNameResolver->isName($node->returnType, 'void')) { return true; } @@ -69,14 +71,10 @@ private function shouldSkip(ClassMethod | Function_ | Closure $node, Scope $scop } // skip as most likely intentional - if (! $this->classModifierChecker->isInsideFinalClass($node) && $this->nodeNameResolver->isName( + return ! $this->classModifierChecker->isInsideFinalClass($node) && $this->nodeNameResolver->isName( $node->returnType, 'void' - )) { - return true; - } - - return $this->nodeNameResolver->isName($node->returnType, 'never'); + ); } private function hasReturnOrYields(ClassMethod|Function_|Closure $node): bool