diff --git a/SlevomatCodingStandard/Helpers/UseStatementHelper.php b/SlevomatCodingStandard/Helpers/UseStatementHelper.php index 0e071e734..e0ca6a50d 100644 --- a/SlevomatCodingStandard/Helpers/UseStatementHelper.php +++ b/SlevomatCodingStandard/Helpers/UseStatementHelper.php @@ -14,6 +14,7 @@ use const T_NAMESPACE; use const T_OPEN_PARENTHESIS; use const T_OPEN_TAG; +use const T_OPEN_USE_GROUP; use const T_SEMICOLON; use const T_STRING; use const T_USE; @@ -193,10 +194,17 @@ private static function getUseStatementPointers(File $phpcsFile, int $openTagPoi $pointer = $token['scope_closer'] + 1; continue; } + + if (self::isGroupUse($phpcsFile, $pointer)) { + $pointer++; + continue; + } + if (self::isAnonymousFunctionUse($phpcsFile, $pointer)) { $pointer++; continue; } + $pointers[] = $pointer; $pointer++; } @@ -207,4 +215,12 @@ private static function getUseStatementPointers(File $phpcsFile, int $openTagPoi return SniffLocalCache::getAndSetIfNotCached($phpcsFile, 'useStatementPointers', $lazy); } + private static function isGroupUse(File $phpcsFile, int $usePointer): bool + { + $tokens = $phpcsFile->getTokens(); + $semicolonOrGroupUsePointer = TokenHelper::findNext($phpcsFile, [T_SEMICOLON, T_OPEN_USE_GROUP], $usePointer + 1); + + return $tokens[$semicolonOrGroupUsePointer]['code'] === T_OPEN_USE_GROUP; + } + } diff --git a/tests/Helpers/data/useStatements.php b/tests/Helpers/data/useStatements.php index c754d6bfe..0670e2d59 100644 --- a/tests/Helpers/data/useStatements.php +++ b/tests/Helpers/data/useStatements.php @@ -7,6 +7,7 @@ use const Rasmus\FOO; use function Lerdorf\isBar; use function Rasmus\foo; +use Doctrine\Common\Collections\Expr\{ Comparison, Value, CompositeExpression }; class FooBar {