Skip to content

Commit bafe6db

Browse files
committed
Tokens\Collections: remove remaining work-arounds for PHPCS < 3.7.1
1 parent 093ac4e commit bafe6db

File tree

8 files changed

+99
-153
lines changed

8 files changed

+99
-153
lines changed

PHPCSUtils/Tokens/Collections.php

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010

1111
namespace PHPCSUtils\Tokens;
1212

13-
use PHPCSUtils\Tokens\TokenHelper;
14-
1513
/**
1614
* Collections of related tokens as often used and needed for sniffs.
1715
*
@@ -234,6 +232,28 @@ class Collections
234232
\T_CLOSE_TAG => \T_CLOSE_TAG,
235233
];
236234

235+
/**
236+
* Tokens used for "names", be it namespace, OO, function or constant names.
237+
*
238+
* Includes the tokens introduced in PHP 8.0 for "Namespaced names as single token".
239+
*
240+
* Note: the PHP 8.0 namespaced name tokens are backfilled in PHPCS since PHPCS 3.5.7,
241+
* but are not used yet (the PHP 8.0 tokenization is "undone" in PHPCS).
242+
* As of PHPCS 4.0.0, these tokens _will_ be used and the PHP 8.0 tokenization is respected.
243+
*
244+
* @link https://wiki.php.net/rfc/namespaced_names_as_token
245+
*
246+
* @since 1.0.0-alpha4 Use the {@see Collections::nameTokens()} method for access.
247+
*
248+
* @return array <int|string> => <int|string>
249+
*/
250+
private static $nameTokens = [
251+
\T_STRING => \T_STRING,
252+
\T_NAME_QUALIFIED => \T_NAME_QUALIFIED,
253+
\T_NAME_FULLY_QUALIFIED => \T_NAME_FULLY_QUALIFIED,
254+
\T_NAME_RELATIVE => \T_NAME_RELATIVE,
255+
];
256+
237257
/**
238258
* DEPRECATED: Object operators.
239259
*
@@ -673,7 +693,7 @@ public static function controlStructureTokens()
673693
public static function functionCallTokens()
674694
{
675695
// Function calls and class instantiation.
676-
$tokens = self::nameTokens();
696+
$tokens = self::$nameTokens;
677697
$tokens[\T_VARIABLE] = \T_VARIABLE;
678698

679699
// Class instantiation only.
@@ -797,17 +817,19 @@ public static function namespacedNameTokens()
797817
\T_NAMESPACE => \T_NAMESPACE,
798818
];
799819

800-
$tokens += self::nameTokens();
820+
$tokens += self::$nameTokens;
801821

802822
return $tokens;
803823
}
804824

805825
/**
806826
* The tokens used for "names", be it namespace, OO, function or constant names.
807827
*
808-
* Includes the tokens introduced in PHP 8.0 for "Namespaced names as single token" when available.
828+
* Includes the tokens introduced in PHP 8.0 for "Namespaced names as single token".
809829
*
810-
* Note: this is a method, not a property as the PHP 8.0 identifier name tokens may not exist.
830+
* Note: the PHP 8.0 namespaced name tokens are backfilled in PHPCS since PHPCS 3.5.7,
831+
* but are not used yet (the PHP 8.0 tokenization is "undone" in PHPCS).
832+
* As of PHPCS 4.0.0, these tokens _will_ be used and the PHP 8.0 tokenization is respected.
811833
*
812834
* @link https://wiki.php.net/rfc/namespaced_names_as_token
813835
*
@@ -817,28 +839,7 @@ public static function namespacedNameTokens()
817839
*/
818840
public static function nameTokens()
819841
{
820-
$tokens = [
821-
\T_STRING => \T_STRING,
822-
];
823-
824-
/*
825-
* PHP >= 8.0 in combination with PHPCS < 3.5.7 and all PHP versions in combination
826-
* with PHPCS >= 3.5.7, though when using PHPCS 3.5.7 < 4.0.0, these tokens are
827-
* not yet in use, i.e. the PHP 8.0 change is "undone" for PHPCS 3.x.
828-
*/
829-
if (TokenHelper::tokenExists('T_NAME_QUALIFIED') === true) {
830-
$tokens[\T_NAME_QUALIFIED] = \T_NAME_QUALIFIED;
831-
}
832-
833-
if (TokenHelper::tokenExists('T_NAME_FULLY_QUALIFIED') === true) {
834-
$tokens[\T_NAME_FULLY_QUALIFIED] = \T_NAME_FULLY_QUALIFIED;
835-
}
836-
837-
if (TokenHelper::tokenExists('T_NAME_RELATIVE') === true) {
838-
$tokens[\T_NAME_RELATIVE] = \T_NAME_RELATIVE;
839-
}
840-
841-
return $tokens;
842+
return self::$nameTokens;
842843
}
843844

844845
/**

Tests/Tokens/Collections/FunctionCallTokensTest.php

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
namespace PHPCSUtils\Tests\Tokens\Collections;
1212

13-
use PHPCSUtils\BackCompat\Helper;
1413
use PHPCSUtils\Tokens\Collections;
1514
use PHPUnit\Framework\TestCase;
1615

@@ -33,25 +32,16 @@ class FunctionCallTokensTest extends TestCase
3332
*/
3433
public function testFunctionCallTokens()
3534
{
36-
$version = Helper::getVersion();
3735
$expected = [
38-
\T_STRING => \T_STRING,
39-
];
40-
41-
if (\version_compare(\PHP_VERSION_ID, '80000', '>=') === true
42-
|| \version_compare($version, '3.5.7', '>=') === true
43-
) {
44-
$expected[\T_NAME_QUALIFIED] = \T_NAME_QUALIFIED;
45-
$expected[\T_NAME_FULLY_QUALIFIED] = \T_NAME_FULLY_QUALIFIED;
46-
$expected[\T_NAME_RELATIVE] = \T_NAME_RELATIVE;
47-
}
48-
49-
$expected += [
50-
\T_VARIABLE => \T_VARIABLE,
51-
\T_ANON_CLASS => \T_ANON_CLASS,
52-
\T_PARENT => \T_PARENT,
53-
\T_SELF => \T_SELF,
54-
\T_STATIC => \T_STATIC,
36+
\T_STRING => \T_STRING,
37+
\T_NAME_QUALIFIED => \T_NAME_QUALIFIED,
38+
\T_NAME_FULLY_QUALIFIED => \T_NAME_FULLY_QUALIFIED,
39+
\T_NAME_RELATIVE => \T_NAME_RELATIVE,
40+
\T_VARIABLE => \T_VARIABLE,
41+
\T_ANON_CLASS => \T_ANON_CLASS,
42+
\T_PARENT => \T_PARENT,
43+
\T_SELF => \T_SELF,
44+
\T_STATIC => \T_STATIC,
5545
];
5646

5747
$this->assertSame($expected, Collections::functionCallTokens());

Tests/Tokens/Collections/NameTokensTest.php

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
namespace PHPCSUtils\Tests\Tokens\Collections;
1212

13-
use PHPCSUtils\BackCompat\Helper;
1413
use PHPCSUtils\Tokens\Collections;
1514
use PHPUnit\Framework\TestCase;
1615

@@ -33,19 +32,13 @@ class NameTokensTest extends TestCase
3332
*/
3433
public function testNameTokens()
3534
{
36-
$version = Helper::getVersion();
3735
$expected = [
38-
\T_STRING => \T_STRING,
36+
\T_STRING => \T_STRING,
37+
\T_NAME_QUALIFIED => \T_NAME_QUALIFIED,
38+
\T_NAME_FULLY_QUALIFIED => \T_NAME_FULLY_QUALIFIED,
39+
\T_NAME_RELATIVE => \T_NAME_RELATIVE,
3940
];
4041

41-
if (\version_compare(\PHP_VERSION_ID, '80000', '>=') === true
42-
|| \version_compare($version, '3.5.7', '>=') === true
43-
) {
44-
$expected[\T_NAME_QUALIFIED] = \T_NAME_QUALIFIED;
45-
$expected[\T_NAME_FULLY_QUALIFIED] = \T_NAME_FULLY_QUALIFIED;
46-
$expected[\T_NAME_RELATIVE] = \T_NAME_RELATIVE;
47-
}
48-
4942
$this->assertSame($expected, Collections::nameTokens());
5043
}
5144
}

Tests/Tokens/Collections/NamespacedNameTokensTest.php

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
namespace PHPCSUtils\Tests\Tokens\Collections;
1212

13-
use PHPCSUtils\BackCompat\Helper;
1413
use PHPCSUtils\Tokens\Collections;
1514
use PHPUnit\Framework\TestCase;
1615

@@ -33,21 +32,15 @@ class NamespacedNameTokensTest extends TestCase
3332
*/
3433
public function testNamespacedNameTokens()
3534
{
36-
$version = Helper::getVersion();
3735
$expected = [
38-
\T_NS_SEPARATOR => \T_NS_SEPARATOR,
39-
\T_NAMESPACE => \T_NAMESPACE,
40-
\T_STRING => \T_STRING,
36+
\T_NS_SEPARATOR => \T_NS_SEPARATOR,
37+
\T_NAMESPACE => \T_NAMESPACE,
38+
\T_STRING => \T_STRING,
39+
\T_NAME_QUALIFIED => \T_NAME_QUALIFIED,
40+
\T_NAME_FULLY_QUALIFIED => \T_NAME_FULLY_QUALIFIED,
41+
\T_NAME_RELATIVE => \T_NAME_RELATIVE,
4142
];
4243

43-
if (\version_compare(\PHP_VERSION_ID, '80000', '>=') === true
44-
|| \version_compare($version, '3.5.7', '>=') === true
45-
) {
46-
$expected[\T_NAME_QUALIFIED] = \T_NAME_QUALIFIED;
47-
$expected[\T_NAME_FULLY_QUALIFIED] = \T_NAME_FULLY_QUALIFIED;
48-
$expected[\T_NAME_RELATIVE] = \T_NAME_RELATIVE;
49-
}
50-
5144
$this->assertSame($expected, Collections::namespacedNameTokens());
5245
}
5346
}

Tests/Tokens/Collections/ParameterPassingTokensTest.php

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
namespace PHPCSUtils\Tests\Tokens\Collections;
1212

13-
use PHPCSUtils\BackCompat\Helper;
1413
use PHPCSUtils\Tokens\Collections;
1514
use PHPUnit\Framework\TestCase;
1615

@@ -33,30 +32,21 @@ class ParameterPassingTokensTest extends TestCase
3332
*/
3433
public function testParameterPassingTokens()
3534
{
36-
$version = Helper::getVersion();
3735
$expected = [
38-
\T_STRING => \T_STRING,
39-
];
40-
41-
if (\version_compare(\PHP_VERSION_ID, '80000', '>=') === true
42-
|| \version_compare($version, '3.5.7', '>=') === true
43-
) {
44-
$expected[\T_NAME_QUALIFIED] = \T_NAME_QUALIFIED;
45-
$expected[\T_NAME_FULLY_QUALIFIED] = \T_NAME_FULLY_QUALIFIED;
46-
$expected[\T_NAME_RELATIVE] = \T_NAME_RELATIVE;
47-
}
48-
49-
$expected += [
50-
\T_VARIABLE => \T_VARIABLE,
51-
\T_ANON_CLASS => \T_ANON_CLASS,
52-
\T_PARENT => \T_PARENT,
53-
\T_SELF => \T_SELF,
54-
\T_STATIC => \T_STATIC,
55-
\T_ISSET => \T_ISSET,
56-
\T_UNSET => \T_UNSET,
57-
\T_ARRAY => \T_ARRAY,
58-
\T_OPEN_SHORT_ARRAY => \T_OPEN_SHORT_ARRAY,
59-
\T_OPEN_SQUARE_BRACKET => \T_OPEN_SQUARE_BRACKET,
36+
\T_STRING => \T_STRING,
37+
\T_NAME_QUALIFIED => \T_NAME_QUALIFIED,
38+
\T_NAME_FULLY_QUALIFIED => \T_NAME_FULLY_QUALIFIED,
39+
\T_NAME_RELATIVE => \T_NAME_RELATIVE,
40+
\T_VARIABLE => \T_VARIABLE,
41+
\T_ANON_CLASS => \T_ANON_CLASS,
42+
\T_PARENT => \T_PARENT,
43+
\T_SELF => \T_SELF,
44+
\T_STATIC => \T_STATIC,
45+
\T_ISSET => \T_ISSET,
46+
\T_UNSET => \T_UNSET,
47+
\T_ARRAY => \T_ARRAY,
48+
\T_OPEN_SHORT_ARRAY => \T_OPEN_SHORT_ARRAY,
49+
\T_OPEN_SQUARE_BRACKET => \T_OPEN_SQUARE_BRACKET,
6050
];
6151

6252
$this->assertSame($expected, Collections::parameterPassingTokens());

Tests/Tokens/Collections/ParameterTypeTokensTest.php

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
namespace PHPCSUtils\Tests\Tokens\Collections;
1212

13-
use PHPCSUtils\BackCompat\Helper;
1413
use PHPCSUtils\Tokens\Collections;
1514
use PHPUnit\Framework\TestCase;
1615

@@ -33,27 +32,21 @@ class ParameterTypeTokensTest extends TestCase
3332
*/
3433
public function testParameterTypeTokens()
3534
{
36-
$version = Helper::getVersion();
3735
$expected = [
38-
\T_CALLABLE => \T_CALLABLE,
39-
\T_SELF => \T_SELF,
40-
\T_PARENT => \T_PARENT,
41-
\T_FALSE => \T_FALSE,
42-
\T_NULL => \T_NULL,
43-
\T_STRING => \T_STRING,
44-
\T_NS_SEPARATOR => \T_NS_SEPARATOR,
45-
\T_TYPE_UNION => \T_TYPE_UNION,
46-
\T_NAMESPACE => \T_NAMESPACE,
36+
\T_CALLABLE => \T_CALLABLE,
37+
\T_SELF => \T_SELF,
38+
\T_PARENT => \T_PARENT,
39+
\T_FALSE => \T_FALSE,
40+
\T_NULL => \T_NULL,
41+
\T_STRING => \T_STRING,
42+
\T_NS_SEPARATOR => \T_NS_SEPARATOR,
43+
\T_TYPE_UNION => \T_TYPE_UNION,
44+
\T_NAMESPACE => \T_NAMESPACE,
45+
\T_NAME_QUALIFIED => \T_NAME_QUALIFIED,
46+
\T_NAME_FULLY_QUALIFIED => \T_NAME_FULLY_QUALIFIED,
47+
\T_NAME_RELATIVE => \T_NAME_RELATIVE,
4748
];
4849

49-
if (\version_compare(\PHP_VERSION_ID, '80000', '>=') === true
50-
|| \version_compare($version, '3.5.7', '>=') === true
51-
) {
52-
$expected[\T_NAME_QUALIFIED] = \T_NAME_QUALIFIED;
53-
$expected[\T_NAME_FULLY_QUALIFIED] = \T_NAME_FULLY_QUALIFIED;
54-
$expected[\T_NAME_RELATIVE] = \T_NAME_RELATIVE;
55-
}
56-
5750
$this->assertSame($expected, Collections::parameterTypeTokens());
5851
}
5952
}

Tests/Tokens/Collections/PropertyTypeTokensTest.php

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
namespace PHPCSUtils\Tests\Tokens\Collections;
1212

13-
use PHPCSUtils\BackCompat\Helper;
1413
use PHPCSUtils\Tokens\Collections;
1514
use PHPUnit\Framework\TestCase;
1615

@@ -33,27 +32,21 @@ class PropertyTypeTokensTest extends TestCase
3332
*/
3433
public function testPropertyTypeTokens()
3534
{
36-
$version = Helper::getVersion();
3735
$expected = [
38-
\T_CALLABLE => \T_CALLABLE,
39-
\T_SELF => \T_SELF,
40-
\T_PARENT => \T_PARENT,
41-
\T_FALSE => \T_FALSE,
42-
\T_NULL => \T_NULL,
43-
\T_STRING => \T_STRING,
44-
\T_NS_SEPARATOR => \T_NS_SEPARATOR,
45-
\T_TYPE_UNION => \T_TYPE_UNION,
46-
\T_NAMESPACE => \T_NAMESPACE,
36+
\T_CALLABLE => \T_CALLABLE,
37+
\T_SELF => \T_SELF,
38+
\T_PARENT => \T_PARENT,
39+
\T_FALSE => \T_FALSE,
40+
\T_NULL => \T_NULL,
41+
\T_STRING => \T_STRING,
42+
\T_NS_SEPARATOR => \T_NS_SEPARATOR,
43+
\T_TYPE_UNION => \T_TYPE_UNION,
44+
\T_NAMESPACE => \T_NAMESPACE,
45+
\T_NAME_QUALIFIED => \T_NAME_QUALIFIED,
46+
\T_NAME_FULLY_QUALIFIED => \T_NAME_FULLY_QUALIFIED,
47+
\T_NAME_RELATIVE => \T_NAME_RELATIVE,
4748
];
4849

49-
if (\version_compare(\PHP_VERSION_ID, '80000', '>=') === true
50-
|| \version_compare($version, '3.5.7', '>=') === true
51-
) {
52-
$expected[\T_NAME_QUALIFIED] = \T_NAME_QUALIFIED;
53-
$expected[\T_NAME_FULLY_QUALIFIED] = \T_NAME_FULLY_QUALIFIED;
54-
$expected[\T_NAME_RELATIVE] = \T_NAME_RELATIVE;
55-
}
56-
5750
$this->assertSame($expected, Collections::propertyTypeTokens());
5851
}
5952
}

0 commit comments

Comments
 (0)