squizlabs / PHP_CodeSniffer

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

[PHP8.3] "final public const string JOURNEY" leads to "Class constants must be uppercase" #3936

Closed ralusnom closed 7 months ago

ralusnom commented 7 months ago

Description

In IntelliJ IDEA phpcs, incorrectly flags valid PHP code as an warning. Specifically, it misinterprets the type of class constants. For example, declaring a constant like final public const string JOURNEY; results in an error message from PHP CS Fixer stating

"phpcs: Class constants must be uppercase; expected STRING but found string".

It seems that PHP CS Fixer is incorrectly checking the type declaration (string) instead of the constant name (JOURNEY).

Runtime version

PHP CS Fixer v3.40.2, when used with PHP 8.3

Code snippet that reproduces the problem

<?php
// Erroneous code snippet
final public const string JOURNEY;
jrfnl commented 7 months ago

Closing as reported to the wrong project. CS-Fixer !== PHP_CodeSniffer.

kubawerlos commented 7 months ago

@jrfnl actually reported in the correct project, only reported wrongly, see the error message.

jrfnl commented 7 months ago

@kubawerlos In that case, still closed correctly as the issues sounds like a duplicate of #3927. Please search before opening a new issue (and don't open issues in this repo anymore - see #3932)

jrfnl commented 5 months ago

FYI: a fix for this issue is included in today's PHP_CodeSniffer 3.9.0 release.

As per #3932, development on PHP_CodeSniffer will continue in the PHPCSStandards/PHP_CodeSniffer repository. If you want to stay informed, you may want to start "watching" that repo (or watching releases from that repo).