Skip to content

Commit bab12ae

Browse files
committed
ReferencedNameHelper: Fixed constant detection
1 parent dd73c0f commit bab12ae

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

SlevomatCodingStandard/Helpers/ReferencedNameHelper.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,16 @@ private static function createAllReferencedNames(File $phpcsFile, int $openTagPo
148148
if ($tokens[$previousTokenBeforeStartPointer]['code'] !== T_NEW) {
149149
$type = ReferencedName::TYPE_FUNCTION;
150150
}
151+
} elseif ($tokens[$nextTokenAfterEndPointer]['code'] === T_BITWISE_AND) {
152+
$tokenAfterNextToken = TokenHelper::findNextEffective($phpcsFile, $nextTokenAfterEndPointer + 1);
153+
if (!in_array($tokens[$tokenAfterNextToken]['code'], [T_VARIABLE, T_ELLIPSIS], true)) {
154+
$type = ReferencedName::TYPE_CONSTANT;
155+
}
151156
} elseif (
152157
!in_array($tokens[$nextTokenAfterEndPointer]['code'], [
153158
T_VARIABLE,
154159
// Variadic parameter
155160
T_ELLIPSIS,
156-
// Parameter by reference
157-
T_BITWISE_AND,
158161
], true)
159162
) {
160163
if (

tests/Helpers/ReferencedNameHelperTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ public function testGetAllReferencedNames(): void
5454
['string', true, false],
5555
['doSomething', true, false],
5656
['STREAM_URL_STAT_QUIET', false, true],
57+
['E_ALL', false, true],
58+
['E_NOTICE', false, true],
5759
];
5860

5961
$names = ReferencedNameHelper::getAllReferencedNames($phpcsFile, 0);

tests/Helpers/data/lotsOfReferencedNames.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,5 @@ function whatever($flags)
124124

125125
}
126126
}
127+
128+
echo E_ALL & ~E_NOTICE;

0 commit comments

Comments
 (0)