Closed
Description
Describe the bug
The ScopeIndent sniff suggests a quite strange indentation when processing multi-nested match
-statements
// It's a copy of my bug report from the old repo (squizlabs/PHP_CodeSniffer#3875)
// Thank you, Juliette, for an amazing initiative in keeping the project going!
Code sample
<?php
echo match (1) {
0 => match (2) {
2 => match (3) {
3 => 3,
default => -1,
},
},
1 => match (2) {
1 => match (3) {
3 => 3,
default => -1,
},
2 => match (3) {
3 => 3,
default => -1,
},
},
};
How that code will look if formatted as suggested
<?php
echo match (1) {
0 => match (2) {
2 => match (3) {
3 => 3,
default => -1,
},
},
1 => match (2) {
1 => match (3) {
3 => 3,
default => -1,
},
2 => match (3) {
3 => 3,
default => -1,
},
},
};
Custom ruleset
N/A — reproducible with PSR12
To reproduce
Steps to reproduce the behavior:
- Create a file called
test.php
with the code sample above - Run
phpcs -s --standard=psr12 test.php
- See errors displayed
------------------------------------------------------------------------------------------------------------------------------
FOUND 4 ERRORS AFFECTING 4 LINES
------------------------------------------------------------------------------------------------------------------------------
15 | ERROR | [x] Line indented incorrectly; expected at least 12 spaces, found 8
| | (Generic.WhiteSpace.ScopeIndent.Incorrect)
16 | ERROR | [x] Line indented incorrectly; expected at least 16 spaces, found 12
| | (Generic.WhiteSpace.ScopeIndent.Incorrect)
17 | ERROR | [x] Line indented incorrectly; expected at least 16 spaces, found 12
| | (Generic.WhiteSpace.ScopeIndent.Incorrect)
18 | ERROR | [x] Line indented incorrectly; expected 12 spaces, found 8 (Generic.WhiteSpace.ScopeIndent.IncorrectExact)
------------------------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX THE 4 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------------------------------------------------------
Expected behavior
No indentation errors.
Versions (please complete the following information)
Operating System | macOS 12.5 |
PHP version | 8.0 |
PHP_CodeSniffer version | 3.9.0 |
Standard | PSR2 |
Install type | Local composer |
Additional context
none
Please confirm:
- I have searched the issue list and am not opening a duplicate issue.
- I confirm that this bug is a bug in PHP_CodeSniffer and not in one of the external standards.
- I have verified the issue still exists in the
master
branch of PHP_CodeSniffer.