Specify isA class-string types for falsey context#1040
Merged
ondrejmirtes merged 2 commits intophpstan:masterfrom Feb 28, 2022
Merged
Conversation
57b9406 to
c33c748
Compare
Contributor
Author
|
I'm gonna extract the common logic and re-use that |
c33c748 to
7ff5dfd
Compare
Member
|
Rebased it to see the CI results :) |
Contributor
Author
|
Should I push a change extracting the type determination? I basically moved the I'm just worried that either one of those extensions receives fixes/changes but the other is not udpated :/ |
Member
|
Yes, common logic extraction 👍 When fixing something in the common logic, regression tests for both is_a and is_subclass_of should still be added, it doesn't hurt. |
4fbf5a8 to
83a0028
Compare
Member
|
Please mark this as ready, we're good to go :) |
Member
|
Thank you! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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_aandis_subclass_ofseem to be having only 2 differencesis_ahas$allow_stringfalseby default, whileis_subclass_ofhas ittrueby default. See https://www.php.net/manual/en/function.is-a.php and https://www.php.net/manual/en/function.is-subclass-of.phpis_aalso returnstrueif the object is of the class to check, whileis_subclass_ofdoesn'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.