Fix BackedEnum::tryFrom not being nullable #2302
Closed
+69
−8
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.
I encountered this case: https://phpstan.org/r/c1013cf7-d2ea-4d7a-91a9-9839456e5740 where the result of
tryFrom
is incorrectly being reported as not nullable when converting a superset enum to a subset enum. Here is my attempt to fix it.In addition, the original extension ignores the possibility of
strict_types
not being enabled. I kept this behavior, as I'm not sure what the policy is with regards tostrict_types
(i.e. it seems thatisDeclareStrictTypes
is not called from any other type extension). But I at least added a few tests forstrict_types=1
.