Specify isA class-string types for falsey context #1040
Merged
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.
The title is misleading already, sorry. Should be more like "Extract type determination logic from is_subclass_of and use it in is_a" :)
Closes phpstan/phpstan#6704
While I initially was working on another solution, the changes in #1039 were finished and I could just completely take them over here. Thank you @arnaud-lb!
is_a
andis_subclass_of
seem to be having only 2 differencesis_a
has$allow_string
false
by default, whileis_subclass_of
has ittrue
by default. See https://www.php.net/manual/en/function.is-a.php and https://www.php.net/manual/en/function.is-subclass-of.phpis_a
also returnstrue
if the object is of the class to check, whileis_subclass_of
doesn'tBecause there is still phpstan/phpstan#6305 open, the second one is fine here. For the first one I just changed the default when taking over the changes.