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.
This could be a solution for the issue phpstan/phpstan#12225
0.0
and-0.0
since they have a different toString value=== 0.0
like=== 0.0 || === -0.0
== 0
The other solution I had in mind for the issue was to "just" update ConstantFloat::toString but it has the drawback that
would have been considered as
'0.0'|'-0.0'
while here the constant was really known.Closes phpstan/phpstan#12225
What could be done to have less changes, would be to modify UnionType::describe to merge 0.0 and -0.0.
But I feel like it's better to be explicit, (since 0.0 and -0.0 have a different behavior) and also, there is already some
-0.0
displayed by PHPStan like in the following snippet (and you'll see the already existing inconsistency).https://phpstan.org/r/0b3cdd4f-b228-4272-a685-621afcf21dd5
cc @staabm (cause I feel like you worked a lot on strict/loose comparison.