*/ public function register() { return [\T_CONST]; } /** * Processes this test, when one of its tokens is encountered. * * @since 10.0.0 * * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ public function process(File $phpcsFile, $stackPtr) { if (ScannedCode::shouldRunOnOrBelow('8.0') === false) { return; } // Is this a class constant ? if (Scopes::isOOConstant($phpcsFile, $stackPtr) === false) { return; } $tokens = $phpcsFile->getTokens(); $skip = Tokens::$emptyTokens + Tokens::$scopeModifiers; $prevToken = $phpcsFile->findPrevious($skip, ($stackPtr - 1), null, true, null, true); // Is the previous token the final keyword ? if ($prevToken === false || $tokens[$prevToken]['code'] !== \T_FINAL) { return; } $phpcsFile->addError( 'The final modifier for OO constants is not supported in PHP 8.0 or earlier.', $prevToken, 'Found' ); } }