From 710f71ac95d36d931e76b47132b599c39abfab11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Bundyra?= Date: Mon, 18 Dec 2023 08:25:41 +0100 Subject: [PATCH] fix: Redundant Parentheses - closure with instanceof (#200) Closes #199 --- .../Sniffs/Formatting/RedundantParenthesesSniff.php | 10 +++++----- .../Sniffs/Formatting/RedundantParenthesesUnitTest.inc | 8 ++++++++ .../Formatting/RedundantParenthesesUnitTest.inc.fixed | 8 ++++++++ 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/WebimpressCodingStandard/Sniffs/Formatting/RedundantParenthesesSniff.php b/src/WebimpressCodingStandard/Sniffs/Formatting/RedundantParenthesesSniff.php index 687c332..d57d673 100644 --- a/src/WebimpressCodingStandard/Sniffs/Formatting/RedundantParenthesesSniff.php +++ b/src/WebimpressCodingStandard/Sniffs/Formatting/RedundantParenthesesSniff.php @@ -143,6 +143,11 @@ public function process(File $phpcsFile, $stackPtr) return; } + // Skip when open parenthesis after closing parenthesis + if ($tokens[$next]['code'] === T_OPEN_PARENTHESIS) { + return; + } + $firstInside = $phpcsFile->findNext(Tokens::$emptyTokens, $stackPtr + 1, $closePtr, true); $lastInside = $phpcsFile->findPrevious(Tokens::$emptyTokens, $closePtr - 1, $stackPtr + 1, true); @@ -176,11 +181,6 @@ public function process(File $phpcsFile, $stackPtr) return; } - // Skip when open parenthesis after closing parenthesis - if ($tokens[$next]['code'] === T_OPEN_PARENTHESIS) { - return; - } - // Check single expression casting if (in_array($tokens[$prev]['code'], Tokens::$castTokens, true)) { $op = $phpcsFile->findNext( diff --git a/test/Sniffs/Formatting/RedundantParenthesesUnitTest.inc b/test/Sniffs/Formatting/RedundantParenthesesUnitTest.inc index 256a40e..6cd93cd 100644 --- a/test/Sniffs/Formatting/RedundantParenthesesUnitTest.inc +++ b/test/Sniffs/Formatting/RedundantParenthesesUnitTest.inc @@ -207,4 +207,12 @@ class RedundantParentheses default => 0, }; } + + public function closureWithInstanceOf(): void + { + (static function (): void { + $container = require 'config/container.php'; + assert($container instanceof ContainerInterface); + })(); + } } diff --git a/test/Sniffs/Formatting/RedundantParenthesesUnitTest.inc.fixed b/test/Sniffs/Formatting/RedundantParenthesesUnitTest.inc.fixed index 3d17018..eaa774e 100644 --- a/test/Sniffs/Formatting/RedundantParenthesesUnitTest.inc.fixed +++ b/test/Sniffs/Formatting/RedundantParenthesesUnitTest.inc.fixed @@ -207,4 +207,12 @@ class RedundantParentheses default => 0, }; } + + public function closureWithInstanceOf(): void + { + (static function (): void { + $container = require 'config/container.php'; + assert($container instanceof ContainerInterface); + })(); + } }