Skip to content

Commit df7bed1

Browse files
committed
AlphabeticallySortedUsesSniff: fixable supports functions and constants
1 parent a788a1a commit df7bed1

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

SlevomatCodingStandard/Sniffs/Namespaces/AlphabeticallySortedUsesSniff.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,15 @@ private function fixAlphabeticalOrder(
8686

8787
$phpcsFile->fixer->addContent($firstUseStatement->getPointer(), implode($phpcsFile->eolChar, array_map(function (UseStatement $useStatement): string {
8888
$unqualifiedName = NamespaceHelper::getUnqualifiedNameFromFullyQualifiedName($useStatement->getFullyQualifiedTypeName());
89+
90+
$useTypeName = $useStatement->getTypeName();
91+
$useTypeFormatted = $useTypeName !== null ? sprintf('%s ', $useTypeName) : '';
92+
8993
if ($unqualifiedName === $useStatement->getNameAsReferencedInFile()) {
90-
return sprintf('use %s;', $useStatement->getFullyQualifiedTypeName());
94+
return sprintf('use %s%s;', $useTypeFormatted, $useStatement->getFullyQualifiedTypeName());
9195
}
9296

93-
return sprintf('use %s as %s;', $useStatement->getFullyQualifiedTypeName(), $useStatement->getNameAsReferencedInFile());
97+
return sprintf('use %s%s as %s;', $useTypeFormatted, $useStatement->getFullyQualifiedTypeName(), $useStatement->getNameAsReferencedInFile());
9498
}, $useStatements)));
9599
$phpcsFile->fixer->endChangeset();
96100
}

tests/Sniffs/Namespaces/data/fixableAlphabeticalSortedUses.fixed.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
use P\Q\R\T;
1414
use U\V\W\Z;
1515
use U\V\X\Y;
16+
use const PHP_OS;
17+
use const X\BOO;
18+
use const X\FOO;
19+
use function strpos;
20+
use function X\boo;
21+
use function X\foo;
1622

1723
class Alphabetical
1824
{

tests/Sniffs/Namespaces/data/fixableAlphabeticalSortedUses.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,20 @@
22

33
namespace Abc;
44

5+
use function X\foo;
6+
use const X\FOO;
57
use \A;
68
use \H\I\K;
79
use \H\I\J;
10+
use const PHP_OS;
811
use \B\C as Ccc;
912
use L\M\O;
13+
use const X\BOO;
1014
use L\m\O as Ooo;
15+
use function strpos;
1116
use D\E\F;
1217
use \U\V\X\Y;
18+
use function X\boo;
1319
use P\Q\R\T;
1420
use \U\V\W\Z;
1521
use P\Q\R\S;

0 commit comments

Comments
 (0)