Skip to content

Commit 6486e13

Browse files
authored
block_core_..._build_css_...: narrow return type (#450)
* block_core_..._build_css_...: narrow return type * block_core_navigation_build_css_...: narrow return type * block_core_navigation_submenu_build_css_font_sizes: narrow return type
1 parent ab0a5d9 commit 6486e13

3 files changed

Lines changed: 36 additions & 21 deletions

File tree

functionMap.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,18 @@
7272
'apply_filters_ref_array' => [null, 'hook_name' => 'non-empty-string'],
7373
'apply_filters_deprecated' => [null, 'hook_name' => 'non-empty-string'],
7474
'backslashit' => [null, '@phpstan-pure' => ''],
75+
'block_core_home_link_build_css_colors' => ['array{css_classes: list<string>, inline_styles: string}'],
76+
'block_core_home_link_build_css_font_sizes' => ['array{css_classes: list<string>, inline_styles: string}'],
77+
'block_core_navigation_build_css_colors' => ['array{css_classes: list<string>, inline_styles: string, overlay_css_classes: list<string>, overlay_inline_styles: string}'],
78+
'block_core_navigation_build_css_font_sizes' => ['array{css_classes: list<string>, inline_styles: string}'],
79+
'block_core_navigation_link_build_css_colors' => ['array{css_classes: list<string>, inline_styles: string}'],
80+
'block_core_navigation_link_build_css_font_sizes' => ['array{css_classes: list<string>, inline_styles: string}'],
7581
'block_core_navigation_link_render_submenu_icon' => ['non-falsy-string'],
7682
'block_core_navigation_render_submenu_icon' => ['non-falsy-string'],
83+
'block_core_navigation_submenu_build_css_font_sizes' => ['array{css_classes: list<string>, inline_styles: string}'],
7784
'block_core_navigation_submenu_render_submenu_icon' => ['non-falsy-string'],
85+
'block_core_page_list_build_css_colors' => ['array{css_classes: list<string>, inline_styles: string, overlay_css_classes: list<string>, overlay_inline_styles: string}'],
86+
'block_core_page_list_build_css_font_sizes' => ['array{css_classes: list<string>, inline_styles: string}'],
7887
'block_core_post_time_to_read_word_count' => ['int<0, max>'],
7988
'block_version' => ["(\$content is '' ? 0 : 0|1)", '@phpstan-pure' => ''],
8089
'bool_from_yn' => ["(\$yn is 'y' ? true : false)", '@phpstan-pure' => ''],

tests/data/return/block-core.php

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,19 @@
22

33
declare(strict_types=1);
44

5-
namespace PhpStubs\WordPress\Core\Tests;
6-
7-
use function block_core_navigation_link_render_submenu_icon;
8-
use function block_core_navigation_render_submenu_icon;
9-
use function block_core_navigation_submenu_render_submenu_icon;
10-
use function block_core_post_time_to_read_word_count;
11-
use function build_dropdown_script_block_core_categories;
12-
use function render_block_core_archives;
13-
use function render_block_core_categories;
14-
use function render_block_core_latest_comments;
15-
use function render_block_core_latest_posts;
16-
use function render_block_core_loginout;
17-
use function render_block_core_query_total;
18-
use function render_block_core_rss;
19-
use function render_block_core_search;
20-
use function render_block_core_site_logo;
21-
use function render_block_core_widget_group;
5+
use PhpStubs\WordPress\Core\Tests\Faker;
226
use function PHPStan\Testing\assertType;
237

24-
assertType('non-falsy-string', block_core_navigation_link_render_submenu_icon());
25-
assertType('non-falsy-string', block_core_navigation_render_submenu_icon());
26-
assertType('non-falsy-string', block_core_navigation_submenu_render_submenu_icon());
27-
288
assertType('int<0, max>', block_core_post_time_to_read_word_count(Faker::string(), Faker::string()));
299

3010
assertType('non-falsy-string', build_dropdown_script_block_core_categories(Faker::string()));
3111

12+
// Submenu icon
13+
assertType('non-falsy-string', block_core_navigation_link_render_submenu_icon());
14+
assertType('non-falsy-string', block_core_navigation_render_submenu_icon());
15+
assertType('non-falsy-string', block_core_navigation_submenu_render_submenu_icon());
16+
17+
// Render block
3218
assertType('non-falsy-string', render_block_core_archives(Faker::array()));
3319
assertType('non-falsy-string', render_block_core_categories(Faker::array(), Faker::string(), Faker::wpBlock()));
3420
assertType('non-falsy-string', render_block_core_latest_comments(Faker::array()));
@@ -39,3 +25,14 @@
3925
assertType('non-falsy-string', render_block_core_search(Faker::array()));
4026
assertType('non-falsy-string', render_block_core_site_logo(Faker::array()));
4127
assertType('non-falsy-string', render_block_core_widget_group(Faker::array(), Faker::string(), Faker::wpBlock()));
28+
29+
// Build CSS
30+
assertType('array{css_classes: list<string>, inline_styles: string}', block_core_home_link_build_css_colors(Faker::array()));
31+
assertType('array{css_classes: list<string>, inline_styles: string}', block_core_home_link_build_css_font_sizes(Faker::array()));
32+
assertType('array{css_classes: list<string>, inline_styles: string, overlay_css_classes: list<string>, overlay_inline_styles: string}', block_core_navigation_build_css_colors(Faker::array()));
33+
assertType('array{css_classes: list<string>, inline_styles: string}', block_core_navigation_build_css_font_sizes(Faker::array()));
34+
assertType('array{css_classes: list<string>, inline_styles: string}', block_core_navigation_link_build_css_colors(Faker::array(), Faker::array()));
35+
assertType('array{css_classes: list<string>, inline_styles: string}', block_core_navigation_link_build_css_font_sizes(Faker::array()));
36+
assertType('array{css_classes: list<string>, inline_styles: string}', block_core_navigation_submenu_build_css_font_sizes(Faker::array()));
37+
assertType('array{css_classes: list<string>, inline_styles: string, overlay_css_classes: list<string>, overlay_inline_styles: string}', block_core_page_list_build_css_colors(Faker::array(), Faker::array()));
38+
assertType('array{css_classes: list<string>, inline_styles: string}', block_core_page_list_build_css_font_sizes(Faker::array()));

wordpress-stubs.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101633,6 +101633,7 @@ function register_block_core_heading()
101633101633
*
101634101634
* @param array $context home link block context.
101635101635
* @return array Colors CSS classes and inline styles.
101636+
* @phpstan-return array{css_classes: list<string>, inline_styles: string}
101636101637
*/
101637101638
function block_core_home_link_build_css_colors($context)
101638101639
{
@@ -101645,6 +101646,7 @@ function block_core_home_link_build_css_colors($context)
101645101646
*
101646101647
* @param array $context Home link block context.
101647101648
* @return array Font size CSS classes and inline styles.
101649+
* @phpstan-return array{css_classes: list<string>, inline_styles: string}
101648101650
*/
101649101651
function block_core_home_link_build_css_font_sizes($context)
101650101652
{
@@ -101986,6 +101988,7 @@ function register_block_core_media_text()
101986101988
* @param array $attributes Block attributes.
101987101989
* @param bool $is_sub_menu Whether the link is part of a sub-menu. Default false.
101988101990
* @return array Colors CSS classes and inline styles.
101991+
* @phpstan-return array{css_classes: list<string>, inline_styles: string}
101989101992
*/
101990101993
function block_core_navigation_link_build_css_colors($context, $attributes, $is_sub_menu = \false)
101991101994
{
@@ -101998,6 +102001,7 @@ function block_core_navigation_link_build_css_colors($context, $attributes, $is_
101998102001
*
101999102002
* @param array $context Navigation block context.
102000102003
* @return array Font size CSS classes and inline styles.
102004+
* @phpstan-return array{css_classes: list<string>, inline_styles: string}
102001102005
*/
102002102006
function block_core_navigation_link_build_css_font_sizes($context)
102003102007
{
@@ -102093,6 +102097,7 @@ function register_block_core_navigation_link()
102093102097
*
102094102098
* @param array $context Navigation block context.
102095102099
* @return array Font size CSS classes and inline styles.
102100+
* @phpstan-return array{css_classes: list<string>, inline_styles: string}
102096102101
*/
102097102102
function block_core_navigation_submenu_build_css_font_sizes($context)
102098102103
{
@@ -102191,6 +102196,7 @@ function block_core_navigation_add_directives_to_submenu($tags, $block_attribute
102191102196
* @param array $attributes Navigation block attributes.
102192102197
*
102193102198
* @return array Colors CSS classes and inline styles.
102199+
* @phpstan-return array{css_classes: list<string>, inline_styles: string, overlay_css_classes: list<string>, overlay_inline_styles: string}
102194102200
*/
102195102201
function block_core_navigation_build_css_colors($attributes)
102196102202
{
@@ -102204,6 +102210,7 @@ function block_core_navigation_build_css_colors($attributes)
102204102210
* @param array $attributes Navigation block attributes.
102205102211
*
102206102212
* @return array Font size CSS classes and inline styles.
102213+
* @phpstan-return array{css_classes: list<string>, inline_styles: string}
102207102214
*/
102208102215
function block_core_navigation_build_css_font_sizes($attributes)
102209102216
{
@@ -102403,6 +102410,7 @@ function register_block_core_page_list_item()
102403102410
* @param array $attributes Block attributes.
102404102411
* @param array $context Navigation block context.
102405102412
* @return array Colors CSS classes and inline styles.
102413+
* @phpstan-return array{css_classes: list<string>, inline_styles: string, overlay_css_classes: list<string>, overlay_inline_styles: string}
102406102414
*/
102407102415
function block_core_page_list_build_css_colors($attributes, $context)
102408102416
{
@@ -102415,6 +102423,7 @@ function block_core_page_list_build_css_colors($attributes, $context)
102415102423
*
102416102424
* @param array $context Navigation block context.
102417102425
* @return array Font size CSS classes and inline styles.
102426+
* @phpstan-return array{css_classes: list<string>, inline_styles: string}
102418102427
*/
102419102428
function block_core_page_list_build_css_font_sizes($context)
102420102429
{

0 commit comments

Comments
 (0)