From 077ebb6e5c65489e80be82b0742375c043124db5 Mon Sep 17 00:00:00 2001 From: Richard Popelis Date: Tue, 25 Jul 2023 14:29:01 +0200 Subject: [PATCH 1/2] EnforceArrowFunctionRule --- src/Rule/General/EnforceArrowFunctionRule.php | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/Rule/General/EnforceArrowFunctionRule.php diff --git a/src/Rule/General/EnforceArrowFunctionRule.php b/src/Rule/General/EnforceArrowFunctionRule.php new file mode 100644 index 0000000..b5ca073 --- /dev/null +++ b/src/Rule/General/EnforceArrowFunctionRule.php @@ -0,0 +1,37 @@ +stmts === null || count($node->stmts) !== 1) { + return []; + } + + $onlyStatement = $node->stmts[0]; + if (!$onlyStatement instanceof Node\Stmt\Return_) { + return []; + } + + return [ + 'Closure only has a single return statement. Use an arrow function instead.', + ]; + } +} From 0bc96b4c02826892861e36b07ece034f2b73f03b Mon Sep 17 00:00:00 2001 From: Richard Popelis Date: Tue, 25 Jul 2023 14:30:25 +0200 Subject: [PATCH 2/2] fix --- src/Rule/General/EnforceArrowFunctionRule.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Rule/General/EnforceArrowFunctionRule.php b/src/Rule/General/EnforceArrowFunctionRule.php index b5ca073..47eb951 100644 --- a/src/Rule/General/EnforceArrowFunctionRule.php +++ b/src/Rule/General/EnforceArrowFunctionRule.php @@ -7,7 +7,7 @@ use PHPStan\Analyser\Scope; use PHPStan\Rules\Rule; -class EnforceArrowFunctionRule +class EnforceArrowFunctionRule implements Rule { public function getNodeType(): string { @@ -25,7 +25,7 @@ public function processNode(Node $node, Scope $scope): array return []; } - $onlyStatement = $node->stmts[0]; + $onlyStatement = reset($node->stmts); if (!$onlyStatement instanceof Node\Stmt\Return_) { return []; }