|
12 | 12 |
|
13 | 13 | use PHP_CodeSniffer\Files\File;
|
14 | 14 | use PHP_CodeSniffer\Sniffs\Sniff;
|
15 |
| -use PHP_CodeSniffer\Util\Tokens; |
16 |
| -use PHPCSUtils\Tokens\Collections; |
| 15 | +use PHPCSUtils\Utils\Constants; |
17 | 16 | use PHPCSUtils\Utils\Scopes;
|
18 | 17 |
|
19 | 18 | /**
|
@@ -95,36 +94,19 @@ public function process(File $phpcsFile, $stackPtr)
|
95 | 94 | return;
|
96 | 95 | }
|
97 | 96 |
|
98 |
| - $tokens = $phpcsFile->getTokens(); |
99 |
| - $valid = Collections::constantModifierKeywords() + Tokens::$emptyTokens; |
100 |
| - |
101 |
| - $finalPtr = false; |
102 |
| - $visibilityPtr = false; |
103 |
| - |
104 |
| - for ($i = ($stackPtr - 1); $i > 0; $i--) { |
105 |
| - if (isset($valid[$tokens[$i]['code']]) === false) { |
106 |
| - break; |
107 |
| - } |
| 97 | + $constantInfo = Constants::getProperties($phpcsFile, $stackPtr); |
108 | 98 |
|
109 |
| - if (isset(Tokens::$emptyTokens[$tokens[$i]['code']]) === true) { |
110 |
| - continue; |
111 |
| - } |
112 |
| - |
113 |
| - if ($tokens[$i]['code'] === \T_FINAL) { |
114 |
| - $finalPtr = $i; |
115 |
| - } else { |
116 |
| - $visibilityPtr = $i; |
117 |
| - } |
118 |
| - } |
119 |
| - |
120 |
| - if ($finalPtr === false || $visibilityPtr === false) { |
| 99 | + if ($constantInfo['final_token'] === false || $constantInfo['scope_token'] === false) { |
121 | 100 | /*
|
122 | 101 | * Either no modifier keywords found at all; or only one type of modifier
|
123 | 102 | * keyword (final or visibility) declared, but not both. No ordering needed.
|
124 | 103 | */
|
125 | 104 | return;
|
126 | 105 | }
|
127 | 106 |
|
| 107 | + $finalPtr = $constantInfo['final_token']; |
| 108 | + $visibilityPtr = $constantInfo['scope_token']; |
| 109 | + |
128 | 110 | if ($visibilityPtr < $finalPtr) {
|
129 | 111 | $phpcsFile->recordMetric($stackPtr, self::METRIC_NAME, self::VISIBILITY_FINAL);
|
130 | 112 | } else {
|
|
0 commit comments