Skip to content

Commit 7619dbe

Browse files
committed
WAIT - PHPCSUtils | Compatibility with PHP_CodeSniffer 4.0
PHPCSDevTools currently only contains one tool which has a dependency on PHPCS - PHPCSDebug. PHPCSDebug is already compatible with PHPCS 4.0, no changed needed. The only thing which does need a change is the test expectations as the tokenization of the PHP open tag has changed in PHPCS 4.0, which means the output expectation will be different between PHPCS 3.x vs 4.x. Includes: * Explicitly declaring compatibility with PHPCS 4.0 in the `composer.json` file. * Updating the workflows to use the new PHPCS 4.x branch for testing. * Updating the workflow to structurally test against both PHPCS 3.x as well as 4.x. * Not allowing builds against PHPCS 4.x to fail anymore.
1 parent 9a75ac4 commit 7619dbe

File tree

6 files changed

+181
-108
lines changed

6 files changed

+181
-108
lines changed

.github/workflows/quicktest.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,13 @@ jobs:
9595
strategy:
9696
matrix:
9797
php: ['5.4', 'latest']
98-
phpcs_version: ['dev-master']
98+
phpcs_version: ['3.1.0', 'dev-master']
9999

100100
include:
101101
- php: '7.2'
102-
phpcs_version: '3.1.0'
103-
- php: '5.4'
104-
phpcs_version: '3.1.0'
102+
phpcs_version: '4.x-dev'
103+
- php: 'latest'
104+
phpcs_version: '4.x-dev'
105105

106106
name: "QTest: PHP ${{ matrix.php }} - PHPCS ${{ matrix.phpcs_version }}"
107107

@@ -114,7 +114,7 @@ jobs:
114114
- name: Setup ini config
115115
id: set_ini
116116
run: |
117-
if [ "${{ matrix.phpcs_version }}" != "dev-master" ]; then
117+
if [ "${{ startsWith( matrix.phpcs_version, 'dev-' ) || endsWith( matrix.phpcs_version, '-dev' ) }}" == "true" ]; then
118118
echo 'PHP_INI=error_reporting=E_ALL & ~E_DEPRECATED, display_errors=On' >> "$GITHUB_OUTPUT"
119119
else
120120
echo 'PHP_INI=error_reporting=-1, display_errors=On' >> "$GITHUB_OUTPUT"
@@ -129,10 +129,10 @@ jobs:
129129

130130
- name: 'Composer: adjust dependencies'
131131
run: |
132-
# Set the PHPCS version to be used in the tests.
133-
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
134132
# Remove the PHPCSDevCS dependency as it has different PHPCS requirements and would block installs.
135133
composer remove --no-update --dev phpcsstandards/phpcsdevcs --no-scripts --no-interaction
134+
# Set the PHPCS version to be used in the tests.
135+
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
136136
137137
# Install dependencies and handle caching in one go.
138138
# @link https://github.com/marketplace/actions/install-php-dependencies-with-composer

.github/workflows/test.yml

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -110,56 +110,58 @@ jobs:
110110
# - PHP 8.2 needs PHPCS 3.6.1+ to run without errors.
111111
# - PHP 8.3 needs PHPCS 3.8.0+ to run without errors (though the errors don't affect this package).
112112
# - PHP 8.4 needs PHPCS 3.8.0+ to run without errors (officially 3.11.0, but 3.8.0 will work fine).
113-
php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2']
114-
phpcs_version: ['3.1.0', 'dev-master']
113+
#
114+
# Additionally, PHPCS 4.x has a minimum version requirement of PHP 7.2.
115+
php: ['7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
116+
phpcs_version: ['dev-master', '4.0.0', '4.x-dev']
115117

116118
include:
117119
# Complete the matrix, while preventing issues with PHPCS versions incompatible with certain PHP versions.
118-
- php: '7.3'
120+
- php: '5.4'
121+
phpcs_version: '3.1.0'
122+
- php: '5.4'
119123
phpcs_version: 'dev-master'
120-
- php: '7.3'
121-
phpcs_version: '3.3.1'
122124

123-
- php: '7.4'
125+
- php: '5.5'
126+
phpcs_version: '3.1.0'
127+
- php: '5.5'
124128
phpcs_version: 'dev-master'
125-
- php: '7.4'
126-
phpcs_version: '3.5.0'
127129

128-
- php: '8.0'
130+
- php: '5.6'
131+
phpcs_version: '3.1.0'
132+
- php: '5.6'
129133
phpcs_version: 'dev-master'
130-
- php: '8.0'
131-
phpcs_version: '3.5.7'
132134

133-
- php: '8.1'
135+
- php: '7.0'
136+
phpcs_version: '3.1.0'
137+
- php: '7.0'
134138
phpcs_version: 'dev-master'
135-
- php: '8.1'
136-
phpcs_version: '3.6.1'
137139

138-
- php: '8.2'
140+
- php: '7.1'
141+
phpcs_version: '3.1.0'
142+
- php: '7.1'
139143
phpcs_version: 'dev-master'
144+
145+
- php: '7.2'
146+
phpcs_version: '3.1.0'
147+
- php: '7.3'
148+
phpcs_version: '3.3.1'
149+
- php: '7.4'
150+
phpcs_version: '3.5.0'
151+
- php: '8.0'
152+
phpcs_version: '3.5.7'
153+
- php: '8.1'
154+
phpcs_version: '3.6.1'
140155
- php: '8.2'
141156
phpcs_version: '3.6.1'
142-
143-
- php: '8.3'
144-
phpcs_version: 'dev-master'
145157
- php: '8.3'
146158
phpcs_version: '3.8.0'
147-
148-
- php: '8.4'
149-
phpcs_version: 'dev-master'
150159
- php: '8.4'
151160
phpcs_version: '3.8.0'
152161

153-
# Experimental builds. These are allowed to fail.
154-
- php: '7.4'
155-
phpcs_version: '4.0.x-dev'
156-
157-
- php: '8.5' # Nightly.
158-
phpcs_version: 'dev-master'
159-
160162
name: "Test: PHP ${{ matrix.php }} - PHPCS ${{ matrix.phpcs_version }}"
161163

162-
continue-on-error: ${{ matrix.php == '8.5' || matrix.phpcs_version == '4.0.x-dev' }}
164+
continue-on-error: ${{ matrix.php == '8.5' }}
163165

164166
steps:
165167
- name: Checkout code
@@ -170,7 +172,7 @@ jobs:
170172
run: |
171173
# On stable PHPCS versions, allow for PHP deprecation notices.
172174
# Unit tests don't need to fail on those for stable releases where those issues won't get fixed anymore.
173-
if [[ "${{ matrix.phpcs_version }}" != "dev-master" && "${{ matrix.phpcs_version }}" != "4.0.x-dev" ]]; then
175+
if [ "${{ startsWith( matrix.phpcs_version, 'dev-' ) || endsWith( matrix.phpcs_version, '-dev' ) }}" == "true" ]; then
174176
echo 'PHP_INI=error_reporting=E_ALL & ~E_DEPRECATED, display_errors=On' >> "$GITHUB_OUTPUT"
175177
else
176178
echo 'PHP_INI=error_reporting=-1, display_errors=On' >> "$GITHUB_OUTPUT"
@@ -185,10 +187,10 @@ jobs:
185187

186188
- name: 'Composer: adjust dependencies'
187189
run: |
188-
# Set the PHPCS version to be used in the tests.
189-
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
190190
# Remove the PHPCSDevCS dependency as it has different PHPCS requirements and would block installs.
191191
composer remove --no-update --dev phpcsstandards/phpcsdevcs --no-scripts --no-interaction
192+
# Set the PHPCS version to be used in the tests.
193+
composer require --no-update squizlabs/php_codesniffer:"${{ matrix.phpcs_version }}" --no-scripts --no-interaction
192194
193195
# Install dependencies and handle caching in one go.
194196
# @link https://github.com/marketplace/actions/install-php-dependencies-with-composer
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
2+
Ptr | Ln | Col | Cond | ( #) | Token Type | [len]: Content
3+
--------------------------------------------------------------------------
4+
0 | L01 | C 1 | CC 0 | ( 0) | T_OPEN_TAG | [ 5]: <?php
5+
6+
1 | L02 | C 1 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
7+
8+
2 | L03 | C 1 | CC 0 | ( 0) | T_DOC_COMMENT_OPEN_TAG | [ 3]: /**
9+
3 | L03 | C 4 | CC 0 | ( 0) | T_DOC_COMMENT_WHITESPACE | [ 1]: ⸱
10+
4 | L03 | C 5 | CC 0 | ( 0) | T_DOC_COMMENT_STRING | [ 17]: Short Doc block.⸱
11+
5 | L03 | C 22 | CC 0 | ( 0) | T_DOC_COMMENT_CLOSE_TAG | [ 2]: */
12+
6 | L03 | C 24 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
13+
14+
7 | L04 | C 1 | CC 0 | ( 0) | T_FUNCTION | [ 8]: function
15+
8 | L04 | C 9 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
16+
9 | L04 | C 10 | CC 0 | ( 0) | T_STRING | [ 4]: name
17+
10 | L04 | C 14 | CC 0 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
18+
11 | L04 | C 15 | CC 0 | ( 1) | T_VARIABLE | [ 6]: $param
19+
12 | L04 | C 21 | CC 0 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
20+
13 | L04 | C 22 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
21+
14 | L04 | C 23 | CC 0 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
22+
15 | L04 | C 24 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
23+
24+
16 | L05 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱ | Orig: →
25+
17 | L05 | C 5 | CC 1 | ( 0) | T_IF | [ 2]: if
26+
18 | L05 | C 7 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
27+
19 | L05 | C 8 | CC 1 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
28+
20 | L05 | C 9 | CC 1 | ( 1) | T_VARIABLE | [ 10]: $condition
29+
21 | L05 | C 19 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
30+
22 | L05 | C 20 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
31+
23 | L05 | C 23 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
32+
24 | L05 | C 24 | CC 1 | ( 1) | T_CONSTANT_ENCAPSED_STRING | [ 7]: 'q⸱⸱⸱a' | Orig: 'q→a'
33+
25 | L05 | C 31 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
34+
26 | L05 | C 32 | CC 1 | ( 1) | T_BOOLEAN_AND | [ 2]: &&
35+
27 | L05 | C 34 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
36+
28 | L05 | C 35 | CC 1 | ( 1) | T_VARIABLE | [ 6]: $param
37+
29 | L05 | C 41 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
38+
30 | L05 | C 42 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
39+
31 | L05 | C 45 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
40+
32 | L05 | C 46 | CC 1 | ( 1) | T_FALSE | [ 5]: false
41+
33 | L05 | C 51 | CC 1 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
42+
34 | L05 | C 52 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
43+
35 | L05 | C 53 | CC 1 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
44+
36 | L05 | C 54 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
45+
46+
37 | L06 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 8]: ⸱⸱⸱⸱⸱⸱⸱⸱
47+
38 | L06 | C 9 | CC 2 | ( 0) | T_COMMENT | [ 16]: /* Do something.
48+
49+
39 | L07 | C 1 | CC 2 | ( 0) | T_COMMENT | [ 24]: ⸱⸱⸱⸱⸱⸱⸱⸱⸱*⸱Multi-line⸱*/ | Orig: →→⸱*⸱Multi-line⸱*/
50+
40 | L07 | C 25 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
51+
52+
41 | L08 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
53+
42 | L08 | C 5 | CC 1 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
54+
43 | L08 | C 6 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
55+
56+
44 | L09 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
57+
45 | L09 | C 5 | CC 1 | ( 0) | T_RETURN | [ 6]: return
58+
46 | L09 | C 11 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
59+
47 | L09 | C 12 | CC 1 | ( 0) | T_VARIABLE | [ 3]: $cl
60+
48 | L09 | C 15 | CC 1 | ( 0) | T_SEMICOLON | [ 1]: ;
61+
49 | L09 | C 16 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
62+
63+
50 | L10 | C 1 | CC 0 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
64+
51 | L10 | C 2 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
65+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
2+
Ptr | Ln | Col | Cond | ( #) | Token Type | [len]: Content
3+
--------------------------------------------------------------------------
4+
0 | L01 | C 1 | CC 0 | ( 0) | T_OPEN_TAG | [ 5]: <?php
5+
1 | L01 | C 6 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
6+
7+
2 | L02 | C 1 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
8+
9+
3 | L03 | C 1 | CC 0 | ( 0) | T_DOC_COMMENT_OPEN_TAG | [ 3]: /**
10+
4 | L03 | C 4 | CC 0 | ( 0) | T_DOC_COMMENT_WHITESPACE | [ 1]: ⸱
11+
5 | L03 | C 5 | CC 0 | ( 0) | T_DOC_COMMENT_STRING | [ 17]: Short Doc block.⸱
12+
6 | L03 | C 22 | CC 0 | ( 0) | T_DOC_COMMENT_CLOSE_TAG | [ 2]: */
13+
7 | L03 | C 24 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
14+
15+
8 | L04 | C 1 | CC 0 | ( 0) | T_FUNCTION | [ 8]: function
16+
9 | L04 | C 9 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
17+
10 | L04 | C 10 | CC 0 | ( 0) | T_STRING | [ 4]: name
18+
11 | L04 | C 14 | CC 0 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
19+
12 | L04 | C 15 | CC 0 | ( 1) | T_VARIABLE | [ 6]: $param
20+
13 | L04 | C 21 | CC 0 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
21+
14 | L04 | C 22 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
22+
15 | L04 | C 23 | CC 0 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
23+
16 | L04 | C 24 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
24+
25+
17 | L05 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱ | Orig: →
26+
18 | L05 | C 5 | CC 1 | ( 0) | T_IF | [ 2]: if
27+
19 | L05 | C 7 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
28+
20 | L05 | C 8 | CC 1 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
29+
21 | L05 | C 9 | CC 1 | ( 1) | T_VARIABLE | [ 10]: $condition
30+
22 | L05 | C 19 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
31+
23 | L05 | C 20 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
32+
24 | L05 | C 23 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
33+
25 | L05 | C 24 | CC 1 | ( 1) | T_CONSTANT_ENCAPSED_STRING | [ 7]: 'q⸱⸱⸱a' | Orig: 'q→a'
34+
26 | L05 | C 31 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
35+
27 | L05 | C 32 | CC 1 | ( 1) | T_BOOLEAN_AND | [ 2]: &&
36+
28 | L05 | C 34 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
37+
29 | L05 | C 35 | CC 1 | ( 1) | T_VARIABLE | [ 6]: $param
38+
30 | L05 | C 41 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
39+
31 | L05 | C 42 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
40+
32 | L05 | C 45 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
41+
33 | L05 | C 46 | CC 1 | ( 1) | T_FALSE | [ 5]: false
42+
34 | L05 | C 51 | CC 1 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
43+
35 | L05 | C 52 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
44+
36 | L05 | C 53 | CC 1 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
45+
37 | L05 | C 54 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
46+
47+
38 | L06 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 8]: ⸱⸱⸱⸱⸱⸱⸱⸱
48+
39 | L06 | C 9 | CC 2 | ( 0) | T_COMMENT | [ 16]: /* Do something.
49+
50+
40 | L07 | C 1 | CC 2 | ( 0) | T_COMMENT | [ 24]: ⸱⸱⸱⸱⸱⸱⸱⸱⸱*⸱Multi-line⸱*/ | Orig: →→⸱*⸱Multi-line⸱*/
51+
41 | L07 | C 25 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
52+
53+
42 | L08 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
54+
43 | L08 | C 5 | CC 1 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
55+
44 | L08 | C 6 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
56+
57+
45 | L09 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
58+
46 | L09 | C 5 | CC 1 | ( 0) | T_RETURN | [ 6]: return
59+
47 | L09 | C 11 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
60+
48 | L09 | C 12 | CC 1 | ( 0) | T_VARIABLE | [ 3]: $cl
61+
49 | L09 | C 15 | CC 1 | ( 0) | T_SEMICOLON | [ 1]: ;
62+
50 | L09 | C 16 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
63+
64+
51 | L10 | C 1 | CC 0 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
65+
52 | L10 | C 2 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
66+

PHPCSDebug/Tests/Debug/TokenListUnitTest.php

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

1111
namespace PHPCSDebug\Tests\Debug;
1212

13+
use PHP_CodeSniffer\Config;
1314
use PHP_CodeSniffer\Util\Common;
1415
use PHPCSUtils\TestUtils\UtilityMethodTestCase;
1516

@@ -37,74 +38,13 @@ final class TokenListUnitTest extends UtilityMethodTestCase
3738
*/
3839
public function testOutput()
3940
{
40-
$expected = <<<'EOD'
41-
42-
Ptr | Ln | Col | Cond | ( #) | Token Type | [len]: Content
43-
--------------------------------------------------------------------------
44-
0 | L01 | C 1 | CC 0 | ( 0) | T_OPEN_TAG | [ 5]: <?php
45-
46-
1 | L02 | C 1 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
47-
48-
2 | L03 | C 1 | CC 0 | ( 0) | T_DOC_COMMENT_OPEN_TAG | [ 3]: /**
49-
3 | L03 | C 4 | CC 0 | ( 0) | T_DOC_COMMENT_WHITESPACE | [ 1]: ⸱
50-
4 | L03 | C 5 | CC 0 | ( 0) | T_DOC_COMMENT_STRING | [ 17]: Short Doc block.⸱
51-
5 | L03 | C 22 | CC 0 | ( 0) | T_DOC_COMMENT_CLOSE_TAG | [ 2]: */
52-
6 | L03 | C 24 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
53-
54-
7 | L04 | C 1 | CC 0 | ( 0) | T_FUNCTION | [ 8]: function
55-
8 | L04 | C 9 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
56-
9 | L04 | C 10 | CC 0 | ( 0) | T_STRING | [ 4]: name
57-
10 | L04 | C 14 | CC 0 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
58-
11 | L04 | C 15 | CC 0 | ( 1) | T_VARIABLE | [ 6]: $param
59-
12 | L04 | C 21 | CC 0 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
60-
13 | L04 | C 22 | CC 0 | ( 0) | T_WHITESPACE | [ 1]: ⸱
61-
14 | L04 | C 23 | CC 0 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
62-
15 | L04 | C 24 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
63-
64-
16 | L05 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱ | Orig: →
65-
17 | L05 | C 5 | CC 1 | ( 0) | T_IF | [ 2]: if
66-
18 | L05 | C 7 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
67-
19 | L05 | C 8 | CC 1 | ( 0) | T_OPEN_PARENTHESIS | [ 1]: (
68-
20 | L05 | C 9 | CC 1 | ( 1) | T_VARIABLE | [ 10]: $condition
69-
21 | L05 | C 19 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
70-
22 | L05 | C 20 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
71-
23 | L05 | C 23 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
72-
24 | L05 | C 24 | CC 1 | ( 1) | T_CONSTANT_ENCAPSED_STRING | [ 7]: 'q⸱⸱⸱a' | Orig: 'q→a'
73-
25 | L05 | C 31 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
74-
26 | L05 | C 32 | CC 1 | ( 1) | T_BOOLEAN_AND | [ 2]: &&
75-
27 | L05 | C 34 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
76-
28 | L05 | C 35 | CC 1 | ( 1) | T_VARIABLE | [ 6]: $param
77-
29 | L05 | C 41 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
78-
30 | L05 | C 42 | CC 1 | ( 1) | T_IS_IDENTICAL | [ 3]: ===
79-
31 | L05 | C 45 | CC 1 | ( 1) | T_WHITESPACE | [ 1]: ⸱
80-
32 | L05 | C 46 | CC 1 | ( 1) | T_FALSE | [ 5]: false
81-
33 | L05 | C 51 | CC 1 | ( 0) | T_CLOSE_PARENTHESIS | [ 1]: )
82-
34 | L05 | C 52 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
83-
35 | L05 | C 53 | CC 1 | ( 0) | T_OPEN_CURLY_BRACKET | [ 1]: {
84-
36 | L05 | C 54 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
85-
86-
37 | L06 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 8]: ⸱⸱⸱⸱⸱⸱⸱⸱
87-
38 | L06 | C 9 | CC 2 | ( 0) | T_COMMENT | [ 16]: /* Do something.
88-
89-
39 | L07 | C 1 | CC 2 | ( 0) | T_COMMENT | [ 24]: ⸱⸱⸱⸱⸱⸱⸱⸱⸱*⸱Multi-line⸱*/ | Orig: →→⸱*⸱Multi-line⸱*/
90-
40 | L07 | C 25 | CC 2 | ( 0) | T_WHITESPACE | [ 0]:
91-
92-
41 | L08 | C 1 | CC 2 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
93-
42 | L08 | C 5 | CC 1 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
94-
43 | L08 | C 6 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
95-
96-
44 | L09 | C 1 | CC 1 | ( 0) | T_WHITESPACE | [ 4]: ⸱⸱⸱⸱
97-
45 | L09 | C 5 | CC 1 | ( 0) | T_RETURN | [ 6]: return
98-
46 | L09 | C 11 | CC 1 | ( 0) | T_WHITESPACE | [ 1]: ⸱
99-
47 | L09 | C 12 | CC 1 | ( 0) | T_VARIABLE | [ 3]: $cl
100-
48 | L09 | C 15 | CC 1 | ( 0) | T_SEMICOLON | [ 1]: ;
101-
49 | L09 | C 16 | CC 1 | ( 0) | T_WHITESPACE | [ 0]:
102-
103-
50 | L10 | C 1 | CC 0 | ( 0) | T_CLOSE_CURLY_BRACKET | [ 1]: }
104-
51 | L10 | C 2 | CC 0 | ( 0) | T_WHITESPACE | [ 0]:
105-
106-
107-
EOD;
41+
if (version_compare(Config::VERSION, '3.99.99', '>') === true) {
42+
// As of PHPCS 4.0, whitespace after the long PHP open tag is tokenized separately,
43+
// hence the difference in test expectations.
44+
$expected = file_get_contents(__DIR__ . '/TokenListExpectationPhpcs4.txt');
45+
} else {
46+
$expected = file_get_contents(__DIR__ . '/TokenListExpectationPhpcs3.txt');
47+
}
10848

10949
if (empty(self::$phpcsFile->ruleset->tokenListeners)) {
11050
// PHPCSUtils 1.0.9+.

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
},
2424
"require" : {
2525
"php" : ">=5.4",
26-
"squizlabs/php_codesniffer" : "^3.1.0",
26+
"squizlabs/php_codesniffer" : "^3.1.0 || ^4.0",
2727
"dealerdirect/phpcodesniffer-composer-installer" : "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0"
2828
},
2929
"require-dev" : {

0 commit comments

Comments
 (0)