diff --git a/WordPress/Tests/NamingConventions/PrefixAllGlobalsUnitTest.1.inc b/WordPress/Tests/NamingConventions/PrefixAllGlobalsUnitTest.1.inc index cdbe22dbcb..7f0c89d8c0 100644 --- a/WordPress/Tests/NamingConventions/PrefixAllGlobalsUnitTest.1.inc +++ b/WordPress/Tests/NamingConventions/PrefixAllGlobalsUnitTest.1.inc @@ -276,7 +276,7 @@ apply_filters( $_REQUEST['else'] ); // Warning. class Acronym_Dynamic_Hooks { const FILTER = 'acronym'; - const FILTER_WITH_UNDERSCORE = 'acronym_'; + const ?string FILTER_WITH_UNDERSCORE = 'acronym_'; protected $filter = 'acronym'; protected $filter_with_underscore = 'acronym_'; diff --git a/WordPress/Tests/WP/CapitalPDangitUnitTest.1.inc b/WordPress/Tests/WP/CapitalPDangitUnitTest.1.inc index 2f12d2f804..21a09a5ed4 100644 --- a/WordPress/Tests/WP/CapitalPDangitUnitTest.1.inc +++ b/WordPress/Tests/WP/CapitalPDangitUnitTest.1.inc @@ -231,3 +231,16 @@ echo Some\Enum\WordPress::ENUM_CONSTANT; // Safeguard that the sniff doesn't act on anonymous classes. $anon = new class() {}; + +/* + * Safeguard that PHP 8.3+ typed class constants are handled correctly (i.e. ignored). + */ +class TypeClassConstants { + public const string WORDPRESS = 'wordress'; + + public const ?string ANOTHER = 'value', + WORDPRESS_SOMETHING = 'wordpress'; + + // Ensures no false positives on incorrect casing in a class constant type name. + public const (\Fully\Qualified\MyClass&wordPRESS)|string ANOTHER_WORDPRESS = 'wordpress'; +} diff --git a/WordPress/Tests/WP/CapitalPDangitUnitTest.1.inc.fixed b/WordPress/Tests/WP/CapitalPDangitUnitTest.1.inc.fixed index bab1c4b13c..e3cf619520 100644 --- a/WordPress/Tests/WP/CapitalPDangitUnitTest.1.inc.fixed +++ b/WordPress/Tests/WP/CapitalPDangitUnitTest.1.inc.fixed @@ -231,3 +231,16 @@ echo Some\Enum\WordPress::ENUM_CONSTANT; // Safeguard that the sniff doesn't act on anonymous classes. $anon = new class() {}; + +/* + * Safeguard that PHP 8.3+ typed class constants are handled correctly (i.e. ignored). + */ +class TypeClassConstants { + public const string WORDPRESS = 'wordress'; + + public const ?string ANOTHER = 'value', + WORDPRESS_SOMETHING = 'wordpress'; + + // Ensures no false positives on incorrect casing in a class constant type name. + public const (\Fully\Qualified\MyClass&wordPRESS)|string ANOTHER_WORDPRESS = 'wordpress'; +}