Skip to content

Commit 979dcb8

Browse files
authored
Add functions to echo parameter extension (#143)
1 parent 52ef877 commit 979dcb8

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

src/EchoParameterDynamicFunctionReturnTypeExtension.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,29 @@ class EchoParameterDynamicFunctionReturnTypeExtension implements \PHPStan\Type\D
2323
* Function name and position of `$echo` parameter.
2424
*/
2525
private const SUPPORTED_FUNCTIONS = [
26+
'checked' => 2,
2627
'comment_class' => 3,
28+
'disabled' => 2,
2729
'edit_term_link' => 4,
2830
'get_calendar' => 1,
31+
'menu_page_url' => 1,
2932
'next_posts' => 1,
3033
'post_type_archive_title' => 1,
3134
'previous_posts' => 0,
35+
'selected' => 2,
3236
'single_cat_title' => 1,
37+
'single_month_title' => 1,
3338
'single_post_title' => 1,
3439
'single_tag_title' => 1,
3540
'single_term_title' => 1,
3641
'the_date' => 3,
3742
'the_modified_date' => 3,
3843
'the_title' => 2,
3944
'wp_loginout' => 1,
45+
'wp_nonce_field' => 3,
46+
'wp_original_referer_field' => 0,
47+
'wp_readonly' => 2,
48+
'wp_referer_field' => 0,
4049
'wp_register' => 2,
4150
'wp_title' => 1,
4251
];

tests/data/echo_parameter.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,76 +7,112 @@
77
use function PHPStan\Testing\assertType;
88

99
// Default value of true
10+
assertType('void', checked($_GET['foo']));
1011
assertType('void', comment_class());
12+
assertType('void', disabled($_GET['foo']));
1113
assertType('void', edit_term_link());
1214
assertType('void', get_calendar());
15+
assertType('void', menu_page_url(''));
1316
assertType('void', next_posts());
1417
assertType('void', post_type_archive_title());
1518
assertType('void', previous_posts());
19+
assertType('void', selected($_GET['foo']));
1620
assertType('void', single_cat_title());
21+
assertType('void', single_month_title());
1722
assertType('void', single_post_title());
1823
assertType('void', single_tag_title());
1924
assertType('void', single_term_title());
2025
assertType('void', the_date());
2126
assertType('void', the_modified_date());
2227
assertType('void', the_title());
2328
assertType('void', wp_loginout());
29+
assertType('void', wp_nonce_field(-1, '_wpnonce', true));
30+
assertType('void', wp_original_referer_field());
31+
assertType('void', wp_readonly($_GET['foo']));
32+
assertType('void', wp_referer_field());
2433
assertType('void', wp_register());
2534
assertType('void', wp_title());
2635

2736
// Explicit value of true
2837
$value = true;
38+
assertType('void', checked($_GET['foo'], true, $value));
2939
assertType('void', comment_class('', null, null, $value));
40+
assertType('void', disabled($_GET['foo'], true, $value));
3041
assertType('void', edit_term_link('', '', '', null, $value));
3142
assertType('void', get_calendar(true, $value));
43+
assertType('void', menu_page_url('', $value));
3244
assertType('void', next_posts(0, $value));
3345
assertType('void', post_type_archive_title('', $value));
3446
assertType('void', previous_posts($value));
47+
assertType('void', selected($_GET['foo'], true, $value));
3548
assertType('void', single_cat_title('', $value));
49+
assertType('void', single_month_title('', $value));
3650
assertType('void', single_post_title('', $value));
3751
assertType('void', single_tag_title('', $value));
3852
assertType('void', single_term_title('', $value));
3953
assertType('void', the_date('', '', '', $value));
4054
assertType('void', the_modified_date('', '', '', $value));
4155
assertType('void', the_title('', '', $value));
4256
assertType('void', wp_loginout('', $value));
57+
assertType('void', wp_nonce_field(-1, '_wpnonce', true, $value));
58+
assertType('void', wp_original_referer_field($value));
59+
assertType('void', wp_readonly($_GET['foo'], true, $value));
60+
assertType('void', wp_referer_field($value));
4361
assertType('void', wp_register('', '', $value));
4462
assertType('void', wp_title('', $value));
4563

4664
// Explicit value of false
4765
$value = false;
66+
assertType('string', checked($_GET['foo'], true, $value));
4867
assertType('string', comment_class('', null, null, $value));
68+
assertType('string', disabled($_GET['foo'], true, $value));
4969
assertType('string', edit_term_link('', '', '', null, $value));
5070
assertType('string', get_calendar(true, $value));
71+
assertType('string', menu_page_url('', $value));
5172
assertType('string', next_posts(0, $value));
5273
assertType('string', post_type_archive_title('', $value));
5374
assertType('string', previous_posts(false));
75+
assertType('string', selected($_GET['foo'], true, $value));
5476
assertType('string', single_cat_title('', $value));
77+
assertType('string', single_month_title('', $value));
5578
assertType('string', single_post_title('', $value));
5679
assertType('string', single_tag_title('', $value));
5780
assertType('string', single_term_title('', $value));
5881
assertType('string', the_date('', '', '', $value));
5982
assertType('string', the_modified_date('', '', '', $value));
6083
assertType('string', the_title('', '', $value));
6184
assertType('string', wp_loginout('', $value));
85+
assertType('string', wp_nonce_field(-1, '_wpnonce', true, $value));
86+
assertType('string', wp_original_referer_field($value));
87+
assertType('string', wp_readonly($_GET['foo'], true, $value));
88+
assertType('string', wp_referer_field($value));
6289
assertType('string', wp_register('', '', $value));
6390
assertType('string', wp_title('', $value));
6491

6592
// Unknown value
6693
$value = isset($_GET['foo']);
94+
assertType('string|void', checked($_GET['foo'], true, $value));
6795
assertType('string|void', comment_class('', null, null, $value));
96+
assertType('string|void', disabled($_GET['foo'], true, $value));
6897
assertType('string|void', edit_term_link('', '', '', null, $value));
6998
assertType('string|void', get_calendar(true, $value));
99+
assertType('string|void', menu_page_url('', $value));
70100
assertType('string|void', next_posts(0, $value));
71101
assertType('string|void', post_type_archive_title('', $value));
72102
assertType('string|void', previous_posts($value));
103+
assertType('string|void', selected($_GET['foo'], true, $value));
73104
assertType('string|void', single_cat_title('', $value));
105+
assertType('string|void', single_month_title('', $value));
74106
assertType('string|void', single_post_title('', $value));
75107
assertType('string|void', single_tag_title('', $value));
76108
assertType('string|void', single_term_title('', $value));
77109
assertType('string|void', the_date('', '', '', $value));
78110
assertType('string|void', the_modified_date('', '', '', $value));
79111
assertType('string|void', the_title('', '', $value));
80112
assertType('string|void', wp_loginout('', $value));
113+
assertType('string|void', wp_nonce_field(-1, '_wpnonce', true, $value));
114+
assertType('string|void', wp_original_referer_field($value));
115+
assertType('string|void', wp_readonly($_GET['foo'], true, $value));
116+
assertType('string|void', wp_referer_field($value));
81117
assertType('string|void', wp_register('', '', $value));
82118
assertType('string|void', wp_title('', $value));

0 commit comments

Comments
 (0)