From 47883c09e18a21c04f154a6667e0926d05cdf6b1 Mon Sep 17 00:00:00 2001 From: Marian <42134098+IanDelMar@users.noreply.github.com> Date: Mon, 24 Aug 2026 14:52:50 +0200 Subject: [PATCH] block_core_breadcrumbs_create_item: add cond. return type --- functionMap.php | 1 + tests/data/return/block-core.php | 6 ++++++ wordpress-stubs.php | 3 +++ 3 files changed, 10 insertions(+) diff --git a/functionMap.php b/functionMap.php index 72a77c45..49bbef45 100644 --- a/functionMap.php +++ b/functionMap.php @@ -73,6 +73,7 @@ 'apply_filters_ref_array' => [null, 'hook_name' => 'non-empty-string'], 'apply_filters_deprecated' => [null, 'hook_name' => 'non-empty-string'], 'backslashit' => [null, '@phpstan-pure' => ''], + 'block_core_breadcrumbs_create_item' => ['($is_paged is true ? array{label: T, url: string} : array{label: T})', '@phpstan-template T' => 'of string', 'text' => 'T'], 'block_core_home_link_build_css_colors' => ['array{css_classes: list, inline_styles: string}'], 'block_core_home_link_build_css_font_sizes' => ['array{css_classes: list, inline_styles: string}'], 'block_core_navigation_build_css_colors' => ['array{css_classes: list, inline_styles: string, overlay_css_classes: list, overlay_inline_styles: string}'], diff --git a/tests/data/return/block-core.php b/tests/data/return/block-core.php index 0be2ab4b..0b6b9fd5 100644 --- a/tests/data/return/block-core.php +++ b/tests/data/return/block-core.php @@ -34,3 +34,9 @@ assertType('array{css_classes: list, inline_styles: string}', block_core_navigation_submenu_build_css_font_sizes(Faker::array())); assertType('array{css_classes: list, inline_styles: string, overlay_css_classes: list, overlay_inline_styles: string}', block_core_page_list_build_css_colors(Faker::array(), Faker::array())); assertType('array{css_classes: list, inline_styles: string}', block_core_page_list_build_css_font_sizes(Faker::array())); + +// Breadcrumbs +assertType('array{label: string, url?: string}', block_core_breadcrumbs_create_item(Faker::string(), Faker::bool())); +assertType("array{label: 'foo', url?: string}", block_core_breadcrumbs_create_item('foo', Faker::bool())); +assertType('array{label: string}', block_core_breadcrumbs_create_item(Faker::string(), false)); +assertType('array{label: string, url: string}', block_core_breadcrumbs_create_item(Faker::string(), true)); diff --git a/wordpress-stubs.php b/wordpress-stubs.php index 000a3233..1626fd9e 100644 --- a/wordpress-stubs.php +++ b/wordpress-stubs.php @@ -113436,6 +113436,9 @@ function block_core_breadcrumbs_create_page_number_item($query_var = 'paged') * @param bool $is_paged Whether we're on a paginated view. * * @return array The breadcrumb item data. + * @phpstan-template T of string + * @phpstan-param T $text + * @phpstan-return ($is_paged is true ? array{label: T, url: string} : array{label: T}) */ function block_core_breadcrumbs_create_item($text, $is_paged = \false) {