PHP 8.3 typed class constants: add tests to two sniffs #2547
+27
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Typed class constants were introduced in PHP 8.3 (https://wiki.php.net/rfc/typed_class_constants). PHPCS started supporting it in version 3.9.0 (PHPCSStandards/PHP_CodeSniffer#321). Since WPCS requires PHPCS 3.13.x, with @jrfnl's help, I investigated what needed to be updated in the WPCS repository to accommodate this new syntax.
In this PR, I'm adding tests to
WordPress.NamingConventions.PrefixAllGlobals
andWordPress.WP.CapitalPDangit
to safeguard that those two sniffs continue to handle type class constants correctly, as both sniffs use theT_CONST
token. No changes were required to the code of those sniffs.ConstantsHelper::is_use_of_global_constant()
andAbstractClassRestrictionsSniff
will need to be changed as well to support typed class constants. This will be addressed in another PR. For now, I documented this task in #2546.