PHP 8.0 | Squiz/ScopeKeywordSpacing: add support for constructor property promotion #3259
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PHP 7.4 | Squiz/ScopeKeywordSpacing: add tests with typed properties
PHP 8.0 | Squiz/ScopeKeywordSpacing: add support for constructor property promotion
Prevent the sniff from ignoring the spacing after the scope keyword in case of PHP 8.0 constructor property promotion.
As it was, the sniff would presume "normal" property syntax, which meant that in the case of constructor property promotion in a multi-line constructor declaration, the sniff would look for a semicolon to end the statement and bow out when the semicolon wasn't found.
By explicitly checking for constructor property promotion and skipping the above mentioned check in that case, we ensure that scope keywords in constructors are still handled correctly.
Includes tests.