While reviewing #538, I found another false positive in Squiz.PHP.DisallowMultipleAssignments when the code checks for default values. If the function is missing the closing parenthesis (which is a parse error but could happen during live coding), the sniff will incorrectly throw an error.
I will open a PR to fix this error once #538 is merged to avoid conflicts.
Code sample
<?php
function missingClosingParenthesis($a =
To reproduce
Steps to reproduce the behavior:
Create a file called test.php with the code sample above.
Run phpcs test.php --standard=Squiz --sniffs=Squiz.PHP.DisallowMultipleAssignments test.php
See error message displayed
FILE: test.php
FOUND 1 ERROR AFFECTING 1 LINE
3 | ERROR | Assignments must be the first block of code on a line
## Expected behavior
The sniff should bail early if the function is missing the closing parenthesis instead of producing an error.
## Versions (please complete the following information)
| | |
|--------------------------|---------------------------------------------------------------------- |
| Operating System | Ubuntu 24.04 |
| PHP version | 8.3 |
| PHP_CodeSniffer version | master |
| Standard | Squiz |
| Install type | git clone |
## Please confirm
- [x] I have searched the issue list and am not opening a duplicate issue.
- [x] I have read the [Contribution Guidelines](https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/.github/CONTRIBUTING.md) and this is not a [support question](https://github.com/PHPCSStandards/PHP_CodeSniffer/discussions).
- [x] I confirm that this bug is a bug in PHP_CodeSniffer and not in one of the external standards.
- [x] I have verified the issue still exists in the `master` branch of PHP_CodeSniffer.
Describe the bug
While reviewing #538, I found another false positive in
Squiz.PHP.DisallowMultipleAssignments
when the code checks for default values. If the function is missing the closing parenthesis (which is a parse error but could happen during live coding), the sniff will incorrectly throw an error.I will open a PR to fix this error once #538 is merged to avoid conflicts.
Code sample
To reproduce
Steps to reproduce the behavior:
test.php
with the code sample above.phpcs test.php --standard=Squiz --sniffs=Squiz.PHP.DisallowMultipleAssignments test.php
FILE: test.php
FOUND 1 ERROR AFFECTING 1 LINE
3 | ERROR | Assignments must be the first block of code on a line