Skip to content

Introduce reportCastedArrayKey parameter #4012

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: 2.1.x
Choose a base branch
from

Conversation

VincentLanglet
Copy link
Contributor

@VincentLanglet VincentLanglet commented May 24, 2025

Closes phpstan/phpstan#12589
Closes phpstan/phpstan#7884

Naming is opened to discussion.

I think we could enable this in phpstan-strict-rules.

@VincentLanglet VincentLanglet force-pushed the reportCastedArrayKey branch from f56eb92 to 011505b Compare May 24, 2025 11:59
Copy link
Member

@ondrejmirtes ondrejmirtes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also would be nice if it observed rule levels. Always wrong type like null to be always reported, but a partially wrong type like string|stdClass only on level 7+...

This is achieved with RuleLevelHelper::findTypeToCheck.

@VincentLanglet
Copy link
Contributor Author

Seems like the RuleLevelHelper::findTypeToCheck was not used at all (or wrongly used) on theses rules.

So I fixed it and added tests with and without the reportArrayKeyCast option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

unset($data[false]); not reported as error? PHPStan should complain about using a non-array-key as an array key
2 participants