Remove deprecated instanceof#184
Conversation
Co-authored-by: Viktor Szépe <viktor@szepe.net>
|
We could open a ticket at @phpstan and talk to @ondrejmirtes about a function changing its return type based on its parameter Let's support only usage where there is only 1 |
|
I'd like to add more tests. Please wait with merging. |
I also thought we need something like that. |
|
I can't think of any other test cases to add. Do you? |
|
We already have much more tests than possible problems. Thank you. |
|
How exactly is the type looking in your more dynamic example? It's still a constant array though, right? (= array shape and not just e.g. array<.., ..>) Is the key just string then? Maybe it helps if you do checks for the key of the whole array? string|'fields' would be generalised to string and then you can handle this case differently maybe? Something like if the key is a supertype of string -> handle different. Or I misunderstood the problem :) |
|
We are digging too deep. |
* Remove deprecated `instanceof` * Remove space Co-authored-by: Viktor Szépe <viktor@szepe.net> * Return early * Fix handling of fields unions * Add tests --------- Co-authored-by: Viktor Szépe <viktor@szepe.net>
* Remove has_filter extension * Remove current_time extension * Remove mysql2date extension * Remove get_object_taxonomies extension * Remove get_taxonomies extension * Adapt get_post extension to new stub file * Adapt get_comment extension to new stub file * Fix CS * Update composer.json * Remove WP_Theme::get() * Remove get_permalink extension * Update .travis.yml * Remove term_exists extension * Update wp_error parameter extension * Update GetPostDynamicFunctionReturnTypeExtension.php * Fully remove wp_error parameter extension * Merge get_comment extension into get_post extension * Remove type specifiying extension and rule for `is_wp_error()` * Update README.md Co-authored-by: Viktor Szépe <viktor@szepe.net> * Remove echo parameter extension * Remove _get_list_table extension * Revert "Remove _get_list_table extension" This reverts commit 0191253. * Update get_post.php * Fix earlyTerminatingMethodCalls syntax (#173) * Remove deprecated instanceof (#183) * Remove deprecated `instanceof` (#184) * Remove deprecated `instanceof` * Remove space Co-authored-by: Viktor Szépe <viktor@szepe.net> * Return early * Fix handling of fields unions * Add tests --------- Co-authored-by: Viktor Szépe <viktor@szepe.net> * Remove deprecated `instanceof` (#185) * Fix CS (#186) * Fix CS * Fix PHP 7.2 compat. * Fix _get_list_table extension (#190) * Revert "Update composer.json" This reverts commit d15b7e1. --------- Co-authored-by: Viktor Szépe <viktor@szepe.net> Co-authored-by: Der Mundschenk & Compagnie <mundschenk-at@users.noreply.github.com>
What I was wondering when updating this extension. I can have a non constant array that has a key
'fields'.get_post($array)with the fields first case returnsarray<int, int|WP_Post>because$_GET['foo']may be'fields'and overwrite'ids'.get_post($array)with the fields last case returnsarray<int, int>as'fields'is not affected by$_GET['foo']and hence will be'ids'. With limited PHPStan knowledge, I was not able to find a way to check the order of$_GET['foo']and'fields'or more specifically to check whether there is a non constant key after the fields key.Is there a simple way to check the order of the keys with PHPStan?
Part of #149