PHPCSStandards / PHP_CodeSniffer

PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.
BSD 3-Clause "New" or "Revised" License
856 stars 53 forks source link

Generic/LowerCaseType: add support for examining DNF types #478

Closed jrfnl closed 3 months ago

jrfnl commented 3 months ago

Description

The Generic.PHP.LowerCaseType sniff needs to be updated to also handle non-lowercase types which are part of a DNF type declaration.

This commit updates the processUnionType() method to not only examine union types, but to examine all multi-token types and to do so in a slightly more performant manner and calls that method now for all multi-token type declarations.

Note: The method name now doesn't properly cover the functionality anymore, however, renaming the method would be a breaking change as the class is not final and the method not private.

Includes unit tests.

Suggested changelog entry

The Generic.PHP.LowerCaseType sniff will now enforce lowercase keyword based types for types used in PHP 8.2+ DNF types.

Related issues/external references

Related #105, #387, #461, #471, #472, #473

Closes #105

jrfnl commented 3 months ago

Rebased without changed. Merging once the build has passed.