squizlabs/PHP_CodeSniffer
### [`v3.7.0`](https://togithub.com/squizlabs/PHP_CodeSniffer/releases/tag/3.7.0)
[Compare Source](https://togithub.com/squizlabs/PHP_CodeSniffer/compare/3.6.2...3.7.0)
#### PHP 8.1 Language Feature Support
PHP_CodeSniffer has run correctly under PHP 8.1 since PHP 8 support was added, but it has not supported new 8.1 language features until this release. Version 3.7.0 adds support for the following PHP 8.1 language features:
- Enums
- Explicit octal notation
- Readonly properties
- Intersection types
- The `never` type
> Note: Standards and sniffs included with PHP_CodeSniffer have been updated to support these language features, but external standards and sniffs may need updating before they are able to detect them correctly.
#### Changelog
- Added support for PHP 8.1 explicit octal notation
- This new syntax has been backfilled for PHP versions less than 8.1
- Thanks to Mark Baker ([@MarkBaker](https://togithub.com/MarkBaker)) for the patch
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for additional fixes
- Added support for PHP 8.1 enums
- This new syntax has been backfilled for PHP versions less than 8.1
- Includes a new `T_ENUM_CASE` token to represent the case statements inside an enum
- Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for additional core and sniff support
- Added support for the PHP 8.1 readonly token
- Tokenzing of the readonly keyword has been backfilled for PHP versions less than 8.1
- Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch
- Added support for PHP 8.1 intersection types
- Includes a new `T_TYPE_INTERSECTION` token to represent the ampersand character inside intersection types
- Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch
- `File::getMethodParameters` now supports the new PHP 8.1 readonly token
- When constructor property promotion is used, a new `property_readonly` array index is included in the return value
- This is a boolean value indicating if the property is readonly
- If the readonly token is detected, a new `readonly_token` array index is included in the return value
- This contains the token index of the readonly keyword
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
- Support for new PHP 8.1 readonly keyword has been added to the following sniffs:
- `Generic.PHP.LowerCaseKeyword`
- `PSR2.Classes.PropertyDeclaration`
- `Squiz.Commenting.BlockComment`
- `Squiz.Commenting.DocCommentAlignment`
- `Squiz.Commenting.VariableComment`
- `Squiz.WhiteSpace.ScopeKeywordSpacing`
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patches
- The parallel feature is now more efficient and runs faster in some situations due to improved process management
- Thanks to Sergei Morozov ([@morozov](https://togithub.com/morozov)) for the patch
- The list of installed coding standards now has consistent ordering across all platforms
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
- `Generic.PHP.UpperCaseConstant` and `Generic.PHP.LowerCaseConstant` now ignore type declarations
- These sniffs now only report errors for `true`/`false`/`null` when used as values
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
- `Generic.PHP.LowerCaseType` now supports the PHP 8.1 `never` type
- Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch
- Fixed bug [#3502](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3502) : A match statement within an array produces Squiz.Arrays.ArrayDeclaration.NoKeySpecified
- Fixed bug [#3503](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3503) : Squiz.Commenting.FunctionComment.ThrowsNoFullStop false positive when one line `@throw`
- Fixed bug [#3505](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3505) : The nullsafe operator is not counted in Generic.Metrics.CyclomaticComplexity
- Thanks to Mark Baker ([@MarkBaker](https://togithub.com/MarkBaker)) for the patch
- Fixed bug [#3526](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3526) : PSR12.Properties.ConstantVisibility false positive when using public final const syntax
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
- Fixed bug [#3530](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3530) : Line indented incorrectly false positive when using match-expression inside switch case
- Fixed bug [#3534](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3534) : Name of typed enum tokenized as `T_GOTO_LABEL`
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
- Fixed bug [#3546](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3546) : Tokenizer/PHP: bug fix - parent/static keywords in class instantiations
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
- Fixed bug [#3550](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3550) : False positive from PSR2.ControlStructures.SwitchDeclaration.TerminatingComment when using trailing comment
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
- Fixed bug [#3575](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3575): Squiz.Scope.MethodScope misses visibility keyword on previous line
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
- Fixed bug [#3604](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3604): Tokenizer/PHP: bug fix for double quoted strings using `${`
- Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
3.6.2
->3.7.0
Release Notes
squizlabs/PHP_CodeSniffer
### [`v3.7.0`](https://togithub.com/squizlabs/PHP_CodeSniffer/releases/tag/3.7.0) [Compare Source](https://togithub.com/squizlabs/PHP_CodeSniffer/compare/3.6.2...3.7.0) #### PHP 8.1 Language Feature Support PHP_CodeSniffer has run correctly under PHP 8.1 since PHP 8 support was added, but it has not supported new 8.1 language features until this release. Version 3.7.0 adds support for the following PHP 8.1 language features: - Enums - Explicit octal notation - Readonly properties - Intersection types - The `never` type > Note: Standards and sniffs included with PHP_CodeSniffer have been updated to support these language features, but external standards and sniffs may need updating before they are able to detect them correctly. #### Changelog - Added support for PHP 8.1 explicit octal notation - This new syntax has been backfilled for PHP versions less than 8.1 - Thanks to Mark Baker ([@MarkBaker](https://togithub.com/MarkBaker)) for the patch - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for additional fixes - Added support for PHP 8.1 enums - This new syntax has been backfilled for PHP versions less than 8.1 - Includes a new `T_ENUM_CASE` token to represent the case statements inside an enum - Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for additional core and sniff support - Added support for the PHP 8.1 readonly token - Tokenzing of the readonly keyword has been backfilled for PHP versions less than 8.1 - Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch - Added support for PHP 8.1 intersection types - Includes a new `T_TYPE_INTERSECTION` token to represent the ampersand character inside intersection types - Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch - `File::getMethodParameters` now supports the new PHP 8.1 readonly token - When constructor property promotion is used, a new `property_readonly` array index is included in the return value - This is a boolean value indicating if the property is readonly - If the readonly token is detected, a new `readonly_token` array index is included in the return value - This contains the token index of the readonly keyword - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Support for new PHP 8.1 readonly keyword has been added to the following sniffs: - `Generic.PHP.LowerCaseKeyword` - `PSR2.Classes.PropertyDeclaration` - `Squiz.Commenting.BlockComment` - `Squiz.Commenting.DocCommentAlignment` - `Squiz.Commenting.VariableComment` - `Squiz.WhiteSpace.ScopeKeywordSpacing` - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patches - The parallel feature is now more efficient and runs faster in some situations due to improved process management - Thanks to Sergei Morozov ([@morozov](https://togithub.com/morozov)) for the patch - The list of installed coding standards now has consistent ordering across all platforms - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - `Generic.PHP.UpperCaseConstant` and `Generic.PHP.LowerCaseConstant` now ignore type declarations - These sniffs now only report errors for `true`/`false`/`null` when used as values - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - `Generic.PHP.LowerCaseType` now supports the PHP 8.1 `never` type - Thanks to Jaroslav Hanslík ([@kukulich](https://togithub.com/kukulich)) for the patch - Fixed bug [#3502](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3502) : A match statement within an array produces Squiz.Arrays.ArrayDeclaration.NoKeySpecified - Fixed bug [#3503](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3503) : Squiz.Commenting.FunctionComment.ThrowsNoFullStop false positive when one line `@throw` - Fixed bug [#3505](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3505) : The nullsafe operator is not counted in Generic.Metrics.CyclomaticComplexity - Thanks to Mark Baker ([@MarkBaker](https://togithub.com/MarkBaker)) for the patch - Fixed bug [#3526](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3526) : PSR12.Properties.ConstantVisibility false positive when using public final const syntax - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3530](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3530) : Line indented incorrectly false positive when using match-expression inside switch case - Fixed bug [#3534](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3534) : Name of typed enum tokenized as `T_GOTO_LABEL` - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3546](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3546) : Tokenizer/PHP: bug fix - parent/static keywords in class instantiations - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3550](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3550) : False positive from PSR2.ControlStructures.SwitchDeclaration.TerminatingComment when using trailing comment - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3575](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3575): Squiz.Scope.MethodScope misses visibility keyword on previous line - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patch - Fixed bug [#3604](https://togithub.com/squizlabs/PHP_CodeSniffer/issues/3604): Tokenizer/PHP: bug fix for double quoted strings using `${` - Thanks to Juliette Reinders Folmer ([@jrfnl](https://togithub.com/jrfnl)) for the patchConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.