diff --git a/PHPCSUtils/Tokens/Collections.php b/PHPCSUtils/Tokens/Collections.php index b969c8d7..28bda522 100644 --- a/PHPCSUtils/Tokens/Collections.php +++ b/PHPCSUtils/Tokens/Collections.php @@ -767,22 +767,24 @@ public static function nullsafeObjectOperatorBC() * * @since 1.0.0-alpha4 This method replaces the {@see Collections::$parameterTypeTokens} property. * @since 1.0.0-alpha4 Added support for PHP 8.0 union types. + * @since 1.0.0-alpha4 Added support for PHP 8.0 identifier name tokens. * * @return array => */ public static function parameterTypeTokens() { - return [ - \T_CALLABLE => \T_CALLABLE, - \T_SELF => \T_SELF, - \T_PARENT => \T_PARENT, - \T_FALSE => \T_FALSE, // Union types only. - \T_NULL => \T_NULL, // Union types only. - \T_STRING => \T_STRING, - \T_NAMESPACE => \T_NAMESPACE, - \T_NS_SEPARATOR => \T_NS_SEPARATOR, - \T_BITWISE_OR => \T_BITWISE_OR, // Union types. + $tokens = [ + \T_CALLABLE => \T_CALLABLE, + \T_SELF => \T_SELF, + \T_PARENT => \T_PARENT, + \T_FALSE => \T_FALSE, // Union types only. + \T_NULL => \T_NULL, // Union types only. + \T_BITWISE_OR => \T_BITWISE_OR, // Union types. ]; + + $tokens += self::namespacedNameTokens(); + + return $tokens; } /** @@ -803,6 +805,7 @@ public static function parameterTypeTokens() * * @since 1.0.0-alpha3 * @since 1.0.0-alpha4 Added support for PHP 8.0 union types. + * @since 1.0.0-alpha4 Added support for PHP 8.0 identifier name tokens. * * @return array => */ diff --git a/Tests/Tokens/Collections/ParameterTypeTokensTest.php b/Tests/Tokens/Collections/ParameterTypeTokensTest.php index 5bf2bc61..86c3eac3 100644 --- a/Tests/Tokens/Collections/ParameterTypeTokensTest.php +++ b/Tests/Tokens/Collections/ParameterTypeTokensTest.php @@ -38,12 +38,18 @@ public function testParameterTypeTokens() \T_PARENT => \T_PARENT, \T_FALSE => \T_FALSE, \T_NULL => \T_NULL, - \T_STRING => \T_STRING, - \T_NAMESPACE => \T_NAMESPACE, - \T_NS_SEPARATOR => \T_NS_SEPARATOR, \T_BITWISE_OR => \T_BITWISE_OR, + \T_NS_SEPARATOR => \T_NS_SEPARATOR, + \T_NAMESPACE => \T_NAMESPACE, + \T_STRING => \T_STRING, ]; + if (\version_compare(\PHP_VERSION_ID, '80000', '>=') === true) { + $expected[\T_NAME_QUALIFIED] = \T_NAME_QUALIFIED; + $expected[\T_NAME_FULLY_QUALIFIED] = \T_NAME_FULLY_QUALIFIED; + $expected[\T_NAME_RELATIVE] = \T_NAME_RELATIVE; + } + $this->assertSame($expected, Collections::parameterTypeTokens()); } }