Commit 02991b966fb for woocommerce

commit 02991b966fb4b71d8a774c1e3610d9788a3361a0
Author: Ján Mikláš <neosinner@gmail.com>
Date:   Fri Oct 30 16:28:04 2026 +0100

    Update PHPStan to 2.3.4 and regenerate baseline (#70416)

diff --git a/plugins/woocommerce/composer.json b/plugins/woocommerce/composer.json
index b820762bd0c..b2d976d02bc 100644
--- a/plugins/woocommerce/composer.json
+++ b/plugins/woocommerce/composer.json
@@ -61,7 +61,7 @@
 		"johnkary/phpunit-speedtrap": "*",
 		"mockery/mockery": "^1.6.10",
 		"php-stubs/wordpress-stubs": "^6.8",
-		"phpstan/phpstan": "^2.1",
+		"phpstan/phpstan": "^2.3.4",
 		"phpunit/phpunit": "^9.6",
 		"sebastian/comparator": "^4.0",
 		"spatie/phpunit-watcher": "^1.23",
diff --git a/plugins/woocommerce/composer.lock b/plugins/woocommerce/composer.lock
index 752a336bd5c..cb6a1e10514 100644
--- a/plugins/woocommerce/composer.lock
+++ b/plugins/woocommerce/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "606224f32fed61be0abb7d07c561d113",
+    "content-hash": "f0e8a17de0be2b5097d0b4e7c74fbfb8",
     "packages": [
         {
             "name": "automattic/block-delimiter",
@@ -2341,11 +2341,11 @@
         },
         {
             "name": "phpstan/phpstan",
-            "version": "2.1.32",
+            "version": "2.3.4",
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e126cad1e30a99b137b8ed75a85a676450ebb227",
-                "reference": "e126cad1e30a99b137b8ed75a85a676450ebb227",
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f20ce6f3c82556cfcfc086b152445a12d1d64fff",
+                "reference": "f20ce6f3c82556cfcfc086b152445a12d1d64fff",
                 "shasum": ""
             },
             "require": {
@@ -2368,6 +2368,17 @@
             "license": [
                 "MIT"
             ],
+            "authors": [
+                {
+                    "name": "Ondřej Mirtes"
+                },
+                {
+                    "name": "Markus Staab"
+                },
+                {
+                    "name": "Vincent Langlet"
+                }
+            ],
             "description": "PHPStan - PHP Static Analysis Tool",
             "keywords": [
                 "dev",
@@ -2390,7 +2401,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2025-11-11T15:18:17+00:00"
+            "time": "2026-10-28T22:38:53+00:00"
         },
         {
             "name": "phpunit/php-code-coverage",
diff --git a/plugins/woocommerce/includes/admin/list-tables/class-wc-admin-list-table-products.php b/plugins/woocommerce/includes/admin/list-tables/class-wc-admin-list-table-products.php
index 0b3da324c6d..34187e7c324 100644
--- a/plugins/woocommerce/includes/admin/list-tables/class-wc-admin-list-table-products.php
+++ b/plugins/woocommerce/includes/admin/list-tables/class-wc-admin-list-table-products.php
@@ -138,7 +138,7 @@ class WC_Admin_List_Table_Products extends WC_Admin_List_Table {
 			// Performance note: post caches has been already primed, hence the loop operates on in-memory data.
 			foreach ( $posts as $post ) {
 				$terms = $post instanceof \WP_Post ? get_object_term_cache( $post->ID, 'product_type' ) : null;
-				$terms = array_filter( is_array( $terms ) ? $terms : array(), static fn ( $term ) => $term instanceof \WP_Term ); // @phpstan-ignore instanceof.alwaysTrue (defensive checks against filters)
+				$terms = array_filter( is_array( $terms ) ? $terms : array(), static fn ( $term ) => $term instanceof \WP_Term );
 				if ( ! empty( $terms ) && ProductType::VARIABLE === current( $terms )->slug ) {
 					$product_id = $post->ID;

diff --git a/plugins/woocommerce/includes/class-wc-query.php b/plugins/woocommerce/includes/class-wc-query.php
index 262c680c3d4..80e06da07f0 100644
--- a/plugins/woocommerce/includes/class-wc-query.php
+++ b/plugins/woocommerce/includes/class-wc-query.php
@@ -505,7 +505,7 @@ class WC_Query {
 			// Performance note: post caches has been already primed, hence the loop operates on in-memory data.
 			foreach ( $posts as $post ) {
 				$terms = $post instanceof \WP_Post ? get_object_term_cache( $post->ID, 'product_type' ) : null;
-				$terms = array_filter( is_array( $terms ) ? $terms : array(), static fn ( $term ) => $term instanceof \WP_Term ); // @phpstan-ignore instanceof.alwaysTrue (defensive checks against filters)
+				$terms = array_filter( is_array( $terms ) ? $terms : array(), static fn ( $term ) => $term instanceof \WP_Term );
 				if ( ! empty( $terms ) && ProductType::VARIABLE === current( $terms )->slug ) {
 					$product_id = $post->ID;

diff --git a/plugins/woocommerce/includes/wc-product-functions.php b/plugins/woocommerce/includes/wc-product-functions.php
index 891d1675208..e4f0bef7f0d 100644
--- a/plugins/woocommerce/includes/wc-product-functions.php
+++ b/plugins/woocommerce/includes/wc-product-functions.php
@@ -545,7 +545,7 @@ function wc_get_formatted_variation( $variation, $flat = false, $include_names =
 			foreach ( array_filter( array_keys( $variation_attributes ), 'taxonomy_exists' ) as $taxonomy ) {
 				$terms = get_the_terms( $parent_id, $taxonomy );
 				if ( is_array( $terms ) ) {
-					foreach ( array_filter( $terms, static fn( $term ) => $term instanceof \WP_Term ) as $term ) { // @phpstan-ignore instanceof.alwaysTrue (defensive checks agains get_the_terms filter)
+					foreach ( array_filter( $terms, static fn( $term ) => $term instanceof \WP_Term ) as $term ) {
 						$taxonomy_terms[ $taxonomy ][ $term->slug ] = $term;
 					}
 				}
diff --git a/plugins/woocommerce/phpstan-baseline.neon b/plugins/woocommerce/phpstan-baseline.neon
index 249ce1cf47a..2caaad452f7 100644
--- a/plugins/woocommerce/phpstan-baseline.neon
+++ b/plugins/woocommerce/phpstan-baseline.neon
@@ -201,7 +201,13 @@ parameters:
 		-
 			message: '#^Offset \(int\|string\) might not exist on array\<WC_Meta_Data\>\|null\.$#'
 			identifier: offsetAccess.notFound
-			count: 5
+			count: 4
+			path: includes/abstracts/abstract-wc-data.php
+
+		-
+			message: '#^Offset \(int\|string\) might not exist on non\-empty\-array\<WC_Meta_Data\>\|null\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
 			path: includes/abstracts/abstract-wc-data.php

 		-
@@ -276,12 +282,6 @@ parameters:
 			count: 1
 			path: includes/abstracts/abstract-wc-data.php

-		-
-			message: '#^Variable \$cached_meta might not be defined\.$#'
-			identifier: variable.undefined
-			count: 1
-			path: includes/abstracts/abstract-wc-data.php
-
 		-
 			message: '#^Variable \$datetime might not be defined\.$#'
 			identifier: variable.undefined
@@ -324,12 +324,6 @@ parameters:
 			count: 1
 			path: includes/abstracts/abstract-wc-integration.php

-		-
-			message: '#^Parameter \#1 \$objectOrClass of class ReflectionClass constructor expects class\-string\<static\(WC_Log_Handler\)\>\|static\(WC_Log_Handler\), class\-string\<static\(WC_Log_Handler\)\>\|WC_Logger_Interface given\.$#'
-			identifier: argument.type
-			count: 1
-			path: includes/abstracts/abstract-wc-log-handler.php
-
 		-
 			message: '#^Method WC_Object_Query\:\:set\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -1440,6 +1434,12 @@ parameters:
 			count: 1
 			path: includes/admin/class-wc-admin-assets.php

+		-
+			message: '#^Offset ''decimal_point'' on array\{decimal_point\: string, thousands_sep\: string, int_curr_symbol\: string, currency_symbol\: string, mon_decimal_point\: string, mon_thousands_sep\: string, positive_sign\: string, negative_sign\: string, \.\.\.\} in isset\(\) always exists and is not nullable\.$#'
+			identifier: isset.offset
+			count: 1
+			path: includes/admin/class-wc-admin-assets.php
+
 		-
 			message: '#^Cannot cast numeric\-string\|WP_Error to int\.$#'
 			identifier: cast.int
@@ -1471,7 +1471,7 @@ parameters:
 			path: includes/admin/class-wc-admin-attributes.php

 		-
-			message: '#^PHPDoc tag @param has invalid value \(int @default_max_terms_to_display Default value\.\)\: Unexpected token "@default", expected variable at offset 152 on line 4$#'
+			message: '#^PHPDoc tag @param has invalid value \(int @default_max_terms_to_display Default value\.\)\: Unexpected token "@default_max_terms_to_display", expected variable at offset 152 on line 4$#'
 			identifier: phpDoc.parseError
 			count: 1
 			path: includes/admin/class-wc-admin-attributes.php
@@ -2796,12 +2796,6 @@ parameters:
 			count: 1
 			path: includes/admin/class-wc-admin-settings.php

-		-
-			message: '#^Variable \$option_display_name might not be defined\.$#'
-			identifier: variable.undefined
-			count: 1
-			path: includes/admin/class-wc-admin-settings.php
-
 		-
 			message: '#^Access to an undefined property WC_Countries\:\:\$countries\.$#'
 			identifier: property.notFound
@@ -2850,6 +2844,12 @@ parameters:
 			count: 1
 			path: includes/admin/class-wc-admin-setup-wizard.php

+		-
+			message: '#^Variable \$checked in isset\(\) always exists and is not nullable\.$#'
+			identifier: isset.variable
+			count: 1
+			path: includes/admin/class-wc-admin-setup-wizard.php
+
 		-
 			message: '#^Access to an undefined property object\:\:\$Author URI\.$#'
 			identifier: property.notFound
@@ -4620,12 +4620,6 @@ parameters:
 			count: 1
 			path: includes/admin/list-tables/class-wc-admin-list-table-orders.php

-		-
-			message: '#^Variable \$report_action might not be defined\.$#'
-			identifier: variable.undefined
-			count: 1
-			path: includes/admin/list-tables/class-wc-admin-list-table-orders.php
-
 		-
 			message: '#^Argument of an invalid type array\<WP_Term\>\|WP_Error supplied for foreach, only iterables are supported\.$#'
 			identifier: foreach.nonIterable
@@ -4644,12 +4638,6 @@ parameters:
 			count: 1
 			path: includes/admin/list-tables/class-wc-admin-list-table-products.php

-		-
-			message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: includes/admin/list-tables/class-wc-admin-list-table-products.php
-
 		-
 			message: '#^Cannot call method get_backorders\(\) on object\|null\.$#'
 			identifier: method.nonObject
@@ -5941,7 +5929,7 @@ parameters:
 			path: includes/admin/meta-boxes/views/html-order-shipping.php

 		-
-			message: '#^Parameter \#1 \$text of function esc_attr expects string, int\<0, max\> given\.$#'
+			message: '#^Parameter \#1 \$text of function esc_attr expects string, int given\.$#'
 			identifier: argument.type
 			count: 1
 			path: includes/admin/meta-boxes/views/html-product-attribute-inner.php
@@ -10194,12 +10182,6 @@ parameters:
 			count: 1
 			path: includes/class-wc-checkout.php

-		-
-			message: '#^Left side of && is always true\.$#'
-			identifier: booleanAnd.leftAlwaysTrue
-			count: 1
-			path: includes/class-wc-checkout.php
-
 		-
 			message: '#^Method WC_Checkout\:\:__get\(\) should return array\|string but return statement is missing\.$#'
 			identifier: return.missing
@@ -10398,6 +10380,12 @@ parameters:
 			count: 1
 			path: includes/class-wc-checkout.php

+		-
+			message: '#^Variable \$order might not be defined\.$#'
+			identifier: variable.undefined
+			count: 1
+			path: includes/class-wc-checkout.php
+
 		-
 			message: '#^Call to static method add_command\(\) on an unknown class WP_CLI\.$#'
 			identifier: class.notFound
@@ -11124,6 +11112,12 @@ parameters:
 			count: 1
 			path: includes/class-wc-download-handler.php

+		-
+			message: '#^Cannot call method get_id\(\) on int\|WC_Customer_Download\.$#'
+			identifier: method.nonObject
+			count: 1
+			path: includes/class-wc-download-handler.php
+
 		-
 			message: '#^Method WC_Download_Handler\:\:check_download_expiry\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -11820,12 +11814,6 @@ parameters:
 			count: 1
 			path: includes/class-wc-geolocation.php

-		-
-			message: '#^Variable \$transient_name might not be defined\.$#'
-			identifier: variable.undefined
-			count: 1
-			path: includes/class-wc-geolocation.php
-
 		-
 			message: '#^Method WC_HTTPS\:\:force_https_template_redirect\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -13008,12 +12996,6 @@ parameters:
 			count: 1
 			path: includes/class-wc-post-data.php

-		-
-			message: '#^Cannot call method get_type\(\) on WC_Order\|WC_Order_Refund\|false\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: includes/class-wc-post-data.php
-
 		-
 			message: '#^Expected 4 @param tags, found 3\.$#'
 			identifier: paramTag.count
@@ -14892,6 +14874,12 @@ parameters:
 			count: 1
 			path: includes/class-wc-structured-data.php

+		-
+			message: '#^Call to an undefined method object\:\:get_id\(\)\.$#'
+			identifier: method.notFound
+			count: 1
+			path: includes/class-wc-structured-data.php
+
 		-
 			message: '#^Call to an undefined method object\:\:get_image_id\(\)\.$#'
 			identifier: method.notFound
@@ -15528,24 +15516,12 @@ parameters:
 			count: 1
 			path: includes/class-wc-tracker.php

-		-
-			message: '#^Call to function is_callable\(\) with array\{Automattic\\Jetpack\\Status, ''in_safe_mode''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: includes/class-wc-tracker.php
-
 		-
 			message: '#^Cannot access offset 1 on list\<string\>\|false\.$#'
 			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
 			path: includes/class-wc-tracker.php

-		-
-			message: '#^Cannot access offset int\<0, max\> on list\<string\>\|false\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 4
-			path: includes/class-wc-tracker.php
-
 		-
 			message: '#^Constant WP_MEMORY_LIMIT not found\.$#'
 			identifier: constant.notFound
@@ -15846,6 +15822,12 @@ parameters:
 			count: 1
 			path: includes/class-woocommerce.php

+		-
+			message: '#^Parameter \#1 \$input of function array_slice expects array, list\<string\>\|false given\.$#'
+			identifier: argument.type
+			count: 2
+			path: includes/class-woocommerce.php
+
 		-
 			message: '#^Parameter \#2 \$haystack of function array_search expects array, list\<string\>\|false given\.$#'
 			identifier: argument.type
@@ -16873,8 +16855,14 @@ parameters:
 			path: includes/data-stores/class-wc-data-store-wp.php

 		-
-			message: '#^Cannot access offset ''year'' on array\{year\: string, month\: string, day\: string\}\|bool\|string\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
+			message: '#^Call to function in_array\(\) with arguments ''\.\.\.''\|''\<''\|''\<\=''\|''\>''\|''\>\='', array\{''\>'', ''\>\='', ''\='', ''\<\='', ''\<'', ''\.\.\.''\} and true will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: includes/data-stores/class-wc-data-store-wp.php
+
+		-
+			message: '#^Cannot assign offset ''year'' to array\<string, string\>\|string\.$#'
+			identifier: offsetAssign.dimType
 			count: 1
 			path: includes/data-stores/class-wc-data-store-wp.php

@@ -16920,12 +16908,6 @@ parameters:
 			count: 4
 			path: includes/data-stores/class-wc-data-store-wp.php

-		-
-			message: '#^Offset 1 might not exist on array\{0\: WC_DateTime, 1\?\: WC_DateTime\}\.$#'
-			identifier: offsetAccess.notFound
-			count: 1
-			path: includes/data-stores/class-wc-data-store-wp.php
-
 		-
 			message: '#^Parameter \#3 \$meta_key of function add_metadata expects string, array\|string given\.$#'
 			identifier: argument.type
@@ -17436,6 +17418,12 @@ parameters:
 			count: 1
 			path: includes/data-stores/class-wc-product-data-store-cpt.php

+		-
+			message: '#^If condition is always true\.$#'
+			identifier: if.alwaysTrue
+			count: 1
+			path: includes/data-stores/class-wc-product-data-store-cpt.php
+
 		-
 			message: '#^Parameter \#1 \$amount of function wc_stock_amount expects float\|int, float\|int\|null given\.$#'
 			identifier: argument.type
@@ -17586,6 +17574,36 @@ parameters:
 			count: 1
 			path: includes/data-stores/class-wc-product-variation-data-store-cpt.php

+		-
+			message: '#^Offset ''_crosssell_ids'' might not exist on array\{sku\?\: mixed, global_unique_id\?\: mixed, manage_stock\?\: mixed, backorders\?\: mixed, stock_quantity\: float\|int, weight\?\: mixed, length\?\: mixed, width\?\: mixed, \.\.\.\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: includes/data-stores/class-wc-product-variation-data-store-cpt.php
+
+		-
+			message: '#^Offset ''sold_individually'' might not exist on array\{sku\?\: mixed, global_unique_id\?\: mixed, manage_stock\?\: mixed, backorders\?\: mixed, stock_quantity\: float\|int, weight\?\: mixed, length\?\: mixed, width\?\: mixed, \.\.\.\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: includes/data-stores/class-wc-product-variation-data-store-cpt.php
+
+		-
+			message: '#^Offset ''stock_quantity'' might not exist on array\{sku\?\: mixed, global_unique_id\?\: mixed, manage_stock\?\: mixed, backorders\?\: mixed, stock_quantity\?\: mixed, weight\?\: mixed, length\?\: mixed, width\?\: mixed, \.\.\.\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: includes/data-stores/class-wc-product-variation-data-store-cpt.php
+
+		-
+			message: '#^Offset ''tax_class'' might not exist on array\{description\?\: mixed, regular_price\?\: mixed, sale_price\?\: mixed, date_on_sale_from\?\: mixed, date_on_sale_to\?\: mixed, manage_stock\?\: mixed, stock_status\?\: mixed, virtual\?\: mixed, \.\.\.\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: includes/data-stores/class-wc-product-variation-data-store-cpt.php
+
+		-
+			message: '#^Offset ''tax_status'' might not exist on array\{sku\?\: mixed, global_unique_id\?\: mixed, manage_stock\?\: mixed, backorders\?\: mixed, stock_quantity\: float\|int, weight\?\: mixed, length\?\: mixed, width\?\: mixed, \.\.\.\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: includes/data-stores/class-wc-product-variation-data-store-cpt.php
+
 		-
 			message: '#^Parameter \#1 \$product of method WC_Product_Variation_Data_Store_CPT\:\:generate_attribute_summary\(\) expects WC_Product_Variation, WC_Product given\.$#'
 			identifier: argument.type
@@ -19704,6 +19722,12 @@ parameters:
 			count: 1
 			path: includes/import/abstract-wc-product-importer.php

+		-
+			message: '#^Call to function class_exists\(\) with ''WC_Importer…'' and false will always evaluate to false\.$#'
+			identifier: function.impossibleType
+			count: 1
+			path: includes/import/abstract-wc-product-importer.php
+
 		-
 			message: '#^Method WC_Product_Importer\:\:set_image_data\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -22009,7 +22033,7 @@ parameters:
 			path: includes/log-handlers/class-wc-log-handler-file.php

 		-
-			message: '#^Parameter \#2 \$new_name of function rename expects string, bool\|string given\.$#'
+			message: '#^Parameter \#2 \$to of function rename expects string, bool\|string given\.$#'
 			identifier: argument.type
 			count: 1
 			path: includes/log-handlers/class-wc-log-handler-file.php
@@ -24369,7 +24393,7 @@ parameters:
 		-
 			message: '#^Parameter \#1 \$value of method WC_Product_Attribute\:\:set_name\(\) expects string, array\|string given\.$#'
 			identifier: argument.type
-			count: 2
+			count: 1
 			path: includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php

 		-
@@ -24415,7 +24439,7 @@ parameters:
 			path: includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php

 		-
-			message: '#^WP_REST_Request does not accept array\<mixed\>\.$#'
+			message: '#^WP_REST_Request does not accept array\<mixed, mixed\>\.$#'
 			identifier: offsetAssign.valueType
 			count: 1
 			path: includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php
@@ -26307,7 +26331,7 @@ parameters:
 		-
 			message: '#^Call to an undefined method WC_Data\:\:get_parent_id\(\)\.$#'
 			identifier: method.notFound
-			count: 2
+			count: 4
 			path: includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php

 		-
@@ -26436,12 +26460,6 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php

-		-
-			message: '#^Negated boolean expression is always true\.$#'
-			identifier: booleanNot.alwaysTrue
-			count: 1
-			path: includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php
-
 		-
 			message: '#^PHPDoc tag @extends has invalid value \(WC_REST_CRUD_Controller\)\: Unexpected token "\\n ", expected ''\<'' at offset 113 on line 5$#'
 			identifier: phpDoc.parseError
@@ -26517,7 +26535,7 @@ parameters:
 		-
 			message: '#^Parameter \#1 \$value of method WC_Product_Attribute\:\:set_name\(\) expects string, array\|string given\.$#'
 			identifier: argument.type
-			count: 2
+			count: 1
 			path: includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php

 		-
@@ -26574,18 +26592,6 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php

-		-
-			message: '#^Strict comparison using \=\=\= between 0 and mixed will always evaluate to false\.$#'
-			identifier: identical.alwaysFalse
-			count: 1
-			path: includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php
-
-		-
-			message: '#^Unreachable statement \- code above always terminates\.$#'
-			identifier: deadCode.unreachable
-			count: 1
-			path: includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php
-
 		-
 			message: '#^PHPDoc tag @extends has invalid value \(WC_REST_Report_Sales_V1_Controller\)\: Unexpected token "\\n ", expected ''\<'' at offset 128 on line 5$#'
 			identifier: phpDoc.parseError
@@ -27276,12 +27282,6 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version2/class-wc-rest-system-status-v2-controller.php

-		-
-			message: '#^Parameter \#1 \$keys of function array_fill_keys expects an array of values castable to string, array\<stromg\> given\.$#'
-			identifier: argument.type
-			count: 1
-			path: includes/rest-api/Controllers/Version2/class-wc-rest-system-status-v2-controller.php
-
 		-
 			message: '#^Parameter \#1 \$size of function wc_let_to_num expects string, string\|false given\.$#'
 			identifier: argument.type
@@ -27324,6 +27324,12 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version2/class-wc-rest-tax-classes-v2-controller.php

+		-
+			message: '#^Parameter \#1 \$title of function sanitize_title expects string, mixed given\.$#'
+			identifier: argument.type
+			count: 1
+			path: includes/rest-api/Controllers/Version2/class-wc-rest-tax-classes-v2-controller.php
+
 		-
 			message: '#^Return type \(array\) of method WC_REST_Tax_Classes_V2_Controller\:\:get_item\(\) should be compatible with return type \(WP_Error\|WP_REST_Response\) of method WP_REST_Controller\:\:get_item\(\)$#'
 			identifier: method.childReturnType
@@ -27612,12 +27618,6 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-crud-controller.php

-		-
-			message: '#^Strict comparison using \=\=\= between ''trash'' and mixed~''trash'' will always evaluate to false\.$#'
-			identifier: identical.alwaysFalse
-			count: 1
-			path: includes/rest-api/Controllers/Version3/class-wc-rest-crud-controller.php
-
 		-
 			message: '#^PHPDoc tag @extends has invalid value \(WC_REST_Customer_Downloads_V2_Controller\)\: Unexpected token "\\n ", expected ''\<'' at offset 131 on line 5$#'
 			identifier: phpDoc.parseError
@@ -28623,6 +28623,12 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-product-reviews-controller.php

+		-
+			message: '#^Offset ''number'' might not exist on array\{author__in\?\: mixed, author__not_in\?\: mixed, comment__not_in\?\: mixed, comment__in\?\: mixed, offset\?\: mixed, order\?\: mixed, number\?\: mixed, post__in\?\: mixed, \.\.\.\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: includes/rest-api/Controllers/Version3/class-wc-rest-product-reviews-controller.php
+
 		-
 			message: '#^PHPDoc tag @extends has invalid value \(WC_REST_Controller\)\: Unexpected token "\\n ", expected ''\<'' at offset 115 on line 5$#'
 			identifier: phpDoc.parseError
@@ -29259,6 +29265,12 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-product-variations-controller.php

+		-
+			message: '#^Parameter \#2 \$str of function explode expects string, mixed given\.$#'
+			identifier: argument.type
+			count: 1
+			path: includes/rest-api/Controllers/Version3/class-wc-rest-product-variations-controller.php
+
 		-
 			message: '#^Parameter \#2 \$value of function get_term_by expects int\|string, array\|string given\.$#'
 			identifier: argument.type
@@ -29502,7 +29514,7 @@ parameters:
 		-
 			message: '#^Parameter \#1 \$value of method WC_Product_Attribute\:\:set_name\(\) expects string, array\|string given\.$#'
 			identifier: argument.type
-			count: 2
+			count: 1
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-products-controller.php

 		-
@@ -29547,6 +29559,12 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-products-controller.php

+		-
+			message: '#^Parameter \#2 \$str of function explode expects string, mixed given\.$#'
+			identifier: argument.type
+			count: 1
+			path: includes/rest-api/Controllers/Version3/class-wc-rest-products-controller.php
+
 		-
 			message: '#^Parameter \$product of method WC_REST_Products_Controller\:\:add_cogs_info_to_returned_product_data\(\) has invalid type Automattic\\WooCommerce\\Internal\\CostOfGoodsSold\\WC_Product\.$#'
 			identifier: class.notFound
@@ -29565,6 +29583,12 @@ parameters:
 			count: 1
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-products-controller.php

+		-
+			message: '#^Property WC_REST_Products_Controller\:\:\$search_mpn_arg_value \(string\) does not accept mixed\.$#'
+			identifier: assign.propertyType
+			count: 1
+			path: includes/rest-api/Controllers/Version3/class-wc-rest-products-controller.php
+
 		-
 			message: '#^Cannot assign offset ''dp'' to WP_REST_Request\.$#'
 			identifier: offsetAssign.dimType
@@ -30106,7 +30130,7 @@ parameters:
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-terms-controller.php

 		-
-			message: '#^Parameter \#1 \$array_arg of function usort expects TArray of array\<WP_Term\>, array\<WP_Term\>\|WP_Error given\.$#'
+			message: '#^Parameter \#1 \$array_arg of function usort expects non\-empty\-array\<WP_Term\>, non\-empty\-array\<WP_Term\>\|WP_Error given\.$#'
 			identifier: argument.type
 			count: 1
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-terms-controller.php
@@ -30117,12 +30141,6 @@ parameters:
 			count: 2
 			path: includes/rest-api/Controllers/Version3/class-wc-rest-terms-controller.php

-		-
-			message: '#^Parameter \#1 \$input of function array_reverse expects array, array\<WP_Term\>\|WP_Error given\.$#'
-			identifier: argument.type
-			count: 1
-			path: includes/rest-api/Controllers/Version3/class-wc-rest-terms-controller.php
-
 		-
 			message: '#^Parameter \#1 \$response of method WP_REST_Controller\:\:prepare_response_for_collection\(\) expects WP_REST_Response, WP_Error\|WP_REST_Response given\.$#'
 			identifier: argument.type
@@ -32226,7 +32244,7 @@ parameters:
 		-
 			message: '#^Access to an undefined property WC_Shipping_Rate\:\:\$cost\.$#'
 			identifier: property.notFound
-			count: 3
+			count: 1
 			path: includes/wc-cart-functions.php

 		-
@@ -33483,6 +33501,12 @@ parameters:
 			count: 1
 			path: includes/wc-formatting-functions.php

+		-
+			message: '#^Offset ''decimal_point'' on array\{decimal_point\: string, thousands_sep\: string, int_curr_symbol\: string, currency_symbol\: string, mon_decimal_point\: string, mon_thousands_sep\: string, positive_sign\: string, negative_sign\: string, \.\.\.\} in isset\(\) always exists and is not nullable\.$#'
+			identifier: isset.offset
+			count: 1
+			path: includes/wc-formatting-functions.php
+
 		-
 			message: '#^Offset 0 might not exist on array\<string\>\|string\|null\.$#'
 			identifier: offsetAccess.notFound
@@ -34173,18 +34197,6 @@ parameters:
 			count: 1
 			path: includes/wc-product-functions.php

-		-
-			message: '#^Cannot call method save\(\) on WC_Product\|false\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: includes/wc-product-functions.php
-
-		-
-			message: '#^Cannot call method set_sku\(\) on WC_Product\|false\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: includes/wc-product-functions.php
-
 		-
 			message: '#^Default value of the parameter \#1 \$offset \(int\) of function wc_update_product_lookup_tables_rating_count_batch\(\) is incompatible with type array\.$#'
 			identifier: parameter.defaultValue
@@ -35169,6 +35181,18 @@ parameters:
 			count: 1
 			path: includes/wc-update-functions.php

+		-
+			message: '#^Offset 1 on array\{non\-empty\-list\<string\>, non\-empty\-list\<non\-falsy\-string\>\} in empty\(\) always exists and is not falsy\.$#'
+			identifier: empty.offset
+			count: 1
+			path: includes/wc-update-functions.php
+
+		-
+			message: '#^Offset 1 on array\{non\-empty\-list\<string\>, non\-empty\-list\<string\>\} in empty\(\) always exists and is not falsy\.$#'
+			identifier: empty.offset
+			count: 1
+			path: includes/wc-update-functions.php
+
 		-
 			message: '#^Parameter \#1 \$item_id of function wc_add_order_item_meta expects int, int\<min, \-1\>\|int\<1, max\>\|true given\.$#'
 			identifier: argument.type
@@ -37966,7 +37990,7 @@ parameters:
 			path: src/Admin/API/OnboardingProfile.php

 		-
-			message: '#^Parameter \#1 \$item of method Automattic\\WooCommerce\\Admin\\API\\OnboardingProfile\:\:prepare_item_for_response\(\) expects object, array given\.$#'
+			message: '#^Parameter \#1 \$item of method Automattic\\WooCommerce\\Admin\\API\\OnboardingProfile\:\:prepare_item_for_response\(\) expects object, array\<mixed\> given\.$#'
 			identifier: argument.type
 			count: 1
 			path: src/Admin/API/OnboardingProfile.php
@@ -39639,6 +39663,12 @@ parameters:
 			count: 1
 			path: src/Admin/API/Reports/Categories/DataStore.php

+		-
+			message: '#^Cannot assign offset ''name'' to ArrayObject\<\*NEVER\*, \*NEVER\*\>\.$#'
+			identifier: offsetAssign.dimType
+			count: 1
+			path: src/Admin/API/Reports/Categories/DataStore.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Admin\\API\\Reports\\Categories\\DataStore\:\:add_order_by_params\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -41487,6 +41517,12 @@ parameters:
 			count: 3
 			path: src/Admin/API/Reports/PerformanceIndicators/Controller.php

+		-
+			message: '#^Access to an undefined property object\:\:\$data\.$#'
+			identifier: property.notFound
+			count: 1
+			path: src/Admin/API/Reports/PerformanceIndicators/Controller.php
+
 		-
 			message: '#^Access to an undefined property object\:\:\$stat\.$#'
 			identifier: property.notFound
@@ -41817,6 +41853,12 @@ parameters:
 			count: 1
 			path: src/Admin/API/Reports/Products/DataStore.php

+		-
+			message: '#^Cannot assign offset ''low_stock_amount'' to ArrayObject\<\*NEVER\*, \*NEVER\*\>\.$#'
+			identifier: offsetAssign.dimType
+			count: 1
+			path: src/Admin/API/Reports/Products/DataStore.php
+
 		-
 			message: '#^Cannot call method date\(\) on WC_DateTime\|null\.$#'
 			identifier: method.nonObject
@@ -41925,6 +41967,12 @@ parameters:
 			count: 1
 			path: src/Admin/API/Reports/Products/DataStore.php

+		-
+			message: '#^Offset ''low_stock_amount'' does not exist on ArrayObject\<\*NEVER\*, \*NEVER\*\>\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: src/Admin/API/Reports/Products/DataStore.php
+
 		-
 			message: '#^Parameter \#1 \$array of method Automattic\\WooCommerce\\Admin\\API\\Reports\\DataStore\:\:cast_numbers\(\) expects array, ArrayObject\<\*NEVER\*, \*NEVER\*\> given\.$#'
 			identifier: argument.type
@@ -42003,6 +42051,18 @@ parameters:
 			count: 1
 			path: src/Admin/API/Reports/Products/Stats/Query.php

+		-
+			message: '#^Offset 1 might not exist on array\{\}\|array\{non\-falsy\-string, numeric\-string, numeric\-string\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: src/Admin/API/Reports/Products/Stats/Segmenter.php
+
+		-
+			message: '#^Offset 2 might not exist on array\{\}\|array\{non\-falsy\-string, numeric\-string, numeric\-string\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: src/Admin/API/Reports/Products/Stats/Segmenter.php
+
 		-
 			message: '#^Variable \$segments might not be defined\.$#'
 			identifier: variable.undefined
@@ -42531,6 +42591,12 @@ parameters:
 			count: 1
 			path: src/Admin/API/Reports/TimeInterval.php

+		-
+			message: '#^Method Automattic\\WooCommerce\\Admin\\API\\Reports\\TimeInterval\:\:intervals_between\(\) should return int but returns float\|int\.$#'
+			identifier: return.type
+			count: 1
+			path: src/Admin/API/Reports/TimeInterval.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Admin\\API\\Reports\\TimeInterval\:\:next_week_start\(\) should return DateTime but returns DateTime\|false\.$#'
 			identifier: return.type
@@ -42723,6 +42789,24 @@ parameters:
 			count: 1
 			path: src/Admin/API/Reports/Variations/DataStore.php

+		-
+			message: '#^Cannot assign offset ''attributes'' to ArrayObject\<\*NEVER\*, \*NEVER\*\>\.$#'
+			identifier: offsetAssign.dimType
+			count: 1
+			path: src/Admin/API/Reports/Variations/DataStore.php
+
+		-
+			message: '#^Cannot assign offset ''deleted'' to ArrayObject\<\*NEVER\*, \*NEVER\*\>\.$#'
+			identifier: offsetAssign.dimType
+			count: 1
+			path: src/Admin/API/Reports/Variations/DataStore.php
+
+		-
+			message: '#^Cannot assign offset ''low_stock_amount'' to ArrayObject\<\*NEVER\*, \*NEVER\*\>\.$#'
+			identifier: offsetAssign.dimType
+			count: 1
+			path: src/Admin/API/Reports/Variations/DataStore.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Admin\\API\\Reports\\Variations\\DataStore\:\:add_from_sql_params\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -42765,6 +42849,12 @@ parameters:
 			count: 1
 			path: src/Admin/API/Reports/Variations/DataStore.php

+		-
+			message: '#^Offset ''low_stock_amount'' does not exist on ArrayObject\<\*NEVER\*, \*NEVER\*\>\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: src/Admin/API/Reports/Variations/DataStore.php
+
 		-
 			message: '#^Parameter \#1 \$array of method Automattic\\WooCommerce\\Admin\\API\\Reports\\DataStore\:\:cast_numbers\(\) expects array, ArrayObject\<\*NEVER\*, \*NEVER\*\> given\.$#'
 			identifier: argument.type
@@ -42831,6 +42921,18 @@ parameters:
 			count: 1
 			path: src/Admin/API/Reports/Variations/Stats/Query.php

+		-
+			message: '#^Offset 1 might not exist on array\{\}\|array\{non\-falsy\-string, numeric\-string, numeric\-string\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: src/Admin/API/Reports/Variations/Stats/Segmenter.php
+
+		-
+			message: '#^Offset 2 might not exist on array\{\}\|array\{non\-falsy\-string, numeric\-string, numeric\-string\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: src/Admin/API/Reports/Variations/Stats/Segmenter.php
+
 		-
 			message: '#^PHPDoc tag @extends has invalid value \(WC_REST_Setting_Options_Controller\)\: Unexpected token "\\n ", expected ''\<'' at offset 97 on line 5$#'
 			identifier: phpDoc.parseError
@@ -43402,7 +43504,7 @@ parameters:
 			path: src/Admin/Features/Fulfillments/Fulfillment.php

 		-
-			message: '#^Binary operation "\*" between string and 1\|3\|7 results in an error\.$#'
+			message: '#^Binary operation "\*" between non\-empty\-string and 1\|3\|7 results in an error\.$#'
 			identifier: binaryOp.invalid
 			count: 1
 			path: src/Admin/Features/Fulfillments/FulfillmentUtils.php
@@ -43635,12 +43737,6 @@ parameters:
 			count: 1
 			path: src/Admin/Features/Fulfillments/FulfillmentsSettings.php

-		-
-			message: '#^Negated boolean expression is always false\.$#'
-			identifier: booleanNot.alwaysFalse
-			count: 2
-			path: src/Admin/Features/Fulfillments/FulfillmentsSettings.php
-
 		-
 			message: '#^Parameter \#2 \$value of method WC_Data\:\:update_meta_data\(\) expects array\|string, true given\.$#'
 			identifier: argument.type
@@ -43767,12 +43863,6 @@ parameters:
 			count: 1
 			path: src/Admin/Features/Fulfillments/Providers/CanadaPostShippingProvider.php

-		-
-			message: '#^Comparison operation "\>" between 60\|70\|75\|80\|85\|88\|90\|92\|95\|98 and 0 is always true\.$#'
-			identifier: greater.alwaysTrue
-			count: 1
-			path: src/Admin/Features/Fulfillments/Providers/DHLShippingProvider.php
-
 		-
 			message: '#^Parameter \#1 \$str of function strtoupper expects string, string\|null given\.$#'
 			identifier: argument.type
@@ -48303,12 +48393,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/CustomerAccount.php

-		-
-			message: '#^Trying to invoke array\{\$this\(Automattic\\WooCommerce\\Blocks\\BlockTypes\\CustomerAccount\), mixed\} but it might not be a callable\.$#'
-			identifier: callable.nonCallable
-			count: 1
-			path: src/Blocks/BlockTypes/CustomerAccount.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Blocks\\BlockTypes\\FeaturedCategory\:\:get_item_image\(\) should return string but returns string\|false\.$#'
 			identifier: return.type
@@ -48507,12 +48591,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/MiniCart.php

-		-
-			message: '#^Trying to invoke array\{\$this\(Automattic\\WooCommerce\\Blocks\\BlockTypes\\MiniCart\), mixed\} but it might not be a callable\.$#'
-			identifier: callable.nonCallable
-			count: 1
-			path: src/Blocks/BlockTypes/MiniCart.php
-
 		-
 			message: '#^Undefined variable\: \$attributes$#'
 			identifier: variable.undefined
@@ -48585,12 +48663,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/MiniCartProductsTableBlock.php

-		-
-			message: '#^Method Automattic\\WooCommerce\\Blocks\\BlockTypes\\MiniCartProductsTableBlock\:\:render_product_details_item_markup\(\) should return string but returns string\|false\.$#'
-			identifier: return.type
-			count: 1
-			path: src/Blocks/BlockTypes/MiniCartProductsTableBlock.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Blocks\\BlockTypes\\MiniCartProductsTableBlock\:\:render_product_details_markup\(\) should return string but returns string\|false\.$#'
 			identifier: return.type
@@ -48795,6 +48867,12 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/PaymentMethodIcons.php

+		-
+			message: '#^Cannot call method get_title\(\) on class\-string\|object\.$#'
+			identifier: method.nonObject
+			count: 1
+			path: src/Blocks/BlockTypes/PaymentMethodIcons.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Blocks\\BlockTypes\\PaymentMethodIcons\:\:enqueue_data\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -48813,6 +48891,18 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/PaymentMethodIcons.php

+		-
+			message: '#^Parameter \#1 \$array_arg of function usort contains unresolvable type\.$#'
+			identifier: argument.unresolvableType
+			count: 1
+			path: src/Blocks/BlockTypes/PaymentMethodIcons.php
+
+		-
+			message: '#^Parameter \#2 \$callback of function usort contains unresolvable type\.$#'
+			identifier: argument.unresolvableType
+			count: 1
+			path: src/Blocks/BlockTypes/PaymentMethodIcons.php
+
 		-
 			message: '#^Cannot access property \$term_id on WP_Post\|WP_Post_Type\|WP_Term\|WP_User\|null\.$#'
 			identifier: property.nonObject
@@ -49113,18 +49203,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/ProductCollection/NoResults.php

-		-
-			message: '#^Call to function is_array\(\) with array\<array\<int\>\> will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Blocks/BlockTypes/ProductCollection/QueryBuilder.php
-
-		-
-			message: '#^Call to function is_array\(\) with array\<array\> will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Blocks/BlockTypes/ProductCollection/QueryBuilder.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Blocks\\BlockTypes\\ProductCollection\\QueryBuilder\:\:add_price_range_filter_posts_clauses\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -49384,7 +49462,7 @@ parameters:
 			path: src/Blocks/BlockTypes/ProductFilterAttribute.php

 		-
-			message: '#^Parameter \#1 \$var of function intval expects array\|bool\|float\|int\|resource\|string\|null, string\|WP_Error given\.$#'
+			message: '#^Parameter \#1 \$var of function intval expects array\|bool\|float\|GMP\|int\|resource\|SimpleXMLElement\|string\|null, string\|WP_Error given\.$#'
 			identifier: argument.type
 			count: 1
 			path: src/Blocks/BlockTypes/ProductFilterAttribute.php
@@ -49641,12 +49719,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/ProductGalleryLargeImage.php

-		-
-			message: '#^Method Automattic\\WooCommerce\\Blocks\\BlockTypes\\ProductGalleryLargeImage\:\:render\(\) should return string but returns string\|false\.$#'
-			identifier: return.type
-			count: 1
-			path: src/Blocks/BlockTypes/ProductGalleryLargeImage.php
-
 		-
 			message: '#^Parameter \#1 \$html of function wp_interactivity_process_directives expects string, string\|false given\.$#'
 			identifier: argument.type
@@ -49695,12 +49767,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/ProductImage.php

-		-
-			message: '#^Parameter \#1 \$attachment_id of function wp_get_attachment_image expects int, int\|null given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Blocks/BlockTypes/ProductImage.php
-
 		-
 			message: '#^Parameter \$block of method Automattic\\WooCommerce\\Blocks\\BlockTypes\\ProductImage\:\:render\(\) has invalid type Automattic\\WooCommerce\\Blocks\\BlockTypes\\WP_Block\.$#'
 			identifier: class.notFound
@@ -49803,12 +49869,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/ProductQuery.php

-		-
-			message: '#^Call to function is_array\(\) with array\<array\> will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Blocks/BlockTypes/ProductQuery.php
-
 		-
 			message: '#^Call to method get_param\(\) on an unknown class Automattic\\WooCommerce\\Blocks\\BlockTypes\\WP_REST_Request\.$#'
 			identifier: class.notFound
@@ -50079,12 +50139,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/ProductStockIndicator.php

-		-
-			message: '#^Variable \$content in empty\(\) always exists and is always falsy\.$#'
-			identifier: empty.variable
-			count: 1
-			path: src/Blocks/BlockTypes/ProductStockIndicator.php
-
 		-
 			message: '#^Access to property \$context on an unknown class Automattic\\WooCommerce\\Blocks\\BlockTypes\\WP_Block\.$#'
 			identifier: class.notFound
@@ -50457,6 +50511,12 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/Reviews/ProductReviewsTitle.php

+		-
+			message: '#^Negated boolean expression is always true\.$#'
+			identifier: booleanNot.alwaysTrue
+			count: 1
+			path: src/Blocks/BlockTypes/Reviews/ProductReviewsTitle.php
+
 		-
 			message: '#^Parameter \#2 \$product of method Automattic\\WooCommerce\\Blocks\\BlockTypes\\Reviews\\ProductReviewsTitle\:\:get_reviews_title\(\) expects Automattic\\WooCommerce\\Blocks\\BlockTypes\\Reviews\\WC_Product, WC_Product given\.$#'
 			identifier: argument.type
@@ -50517,12 +50577,6 @@ parameters:
 			count: 1
 			path: src/Blocks/BlockTypes/SingleProduct.php

-		-
-			message: '#^PHPDoc tag @var does not specify variable name\.$#'
-			identifier: varTag.noVariable
-			count: 1
-			path: src/Blocks/BlockTypes/SingleProduct.php
-
 		-
 			message: '#^Parameter \#3 \$block of method Automattic\\WooCommerce\\Blocks\\BlockTypes\\AbstractBlock\:\:render\(\) expects WP_Block, Automattic\\WooCommerce\\Blocks\\BlockTypes\\WP_Block given\.$#'
 			identifier: argument.type
@@ -51318,7 +51372,7 @@ parameters:
 		-
 			message: '#^Binary operation "\+" between int\|string and 1 results in an error\.$#'
 			identifier: binaryOp.invalid
-			count: 3
+			count: 2
 			path: src/Blocks/Templates/AbstractTemplateWithFallback.php

 		-
@@ -51642,7 +51696,7 @@ parameters:
 		-
 			message: '#^Access to an undefined property object\:\:\$source\.$#'
 			identifier: property.notFound
-			count: 2
+			count: 1
 			path: src/Blocks/Utils/BlockTemplateUtils.php

 		-
@@ -52359,6 +52413,18 @@ parameters:
 			count: 1
 			path: src/Gateways/PayPal/WebhookHandler.php

+		-
+			message: '#^Offset ''decimal_point'' on array\{decimal_point\: string, thousands_sep\: string, int_curr_symbol\: string, currency_symbol\: string, mon_decimal_point\: string, mon_thousands_sep\: string, positive_sign\: string, negative_sign\: string, \.\.\.\} on left side of \?\? always exists and is not nullable\.$#'
+			identifier: nullCoalesce.offset
+			count: 1
+			path: src/Internal/Abilities/Domain/Traits/ProductAbilityTrait.php
+
+		-
+			message: '#^Offset ''mon_decimal_point'' on array\{decimal_point\: string, thousands_sep\: string, int_curr_symbol\: string, currency_symbol\: string, mon_decimal_point\: string, mon_thousands_sep\: string, positive_sign\: string, negative_sign\: string, \.\.\.\} on left side of \?\? always exists and is not nullable\.$#'
+			identifier: nullCoalesce.offset
+			count: 1
+			path: src/Internal/Abilities/Domain/Traits/ProductAbilityTrait.php
+
 		-
 			message: '#^Access to an undefined property object\:\:\$payload\.$#'
 			identifier: property.notFound
@@ -52413,12 +52479,6 @@ parameters:
 			count: 1
 			path: src/Internal/AddressProvider/AbstractAutomatticAddressProvider.php

-		-
-			message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/AddressProvider/AddressProviderController.php
-
 		-
 			message: '#^Call to function is_array\(\) with non\-empty\-array will always evaluate to true\.$#'
 			identifier: function.alreadyNarrowedType
@@ -52755,18 +52815,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/CustomerEffortScoreTracks.php

-		-
-			message: '#^Call to function is_object\(\) with WC_Email will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/EmailImprovements/EmailImprovements.php
-
-		-
-			message: '#^Instanceof between WC_Email and WC_Email will always evaluate to true\.$#'
-			identifier: instanceof.alwaysTrue
-			count: 1
-			path: src/Internal/Admin/EmailImprovements/EmailImprovements.php
-
 		-
 			message: '#^Parameter \#2 \$str of function explode expects string, int\|string given\.$#'
 			identifier: argument.type
@@ -53433,12 +53481,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Logging/FileV2/SearchListTable.php

-		-
-			message: '#^Call to function is_array\(\) with list\<array\{string, int\}\> will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Logging/FileV2/SearchListTable.php
-
 		-
 			message: '#^Parameter \#1 \$args of method WP_List_Table\:\:set_pagination_args\(\) expects array\{total_items\?\: int, total_pages\?\: int, per_page\?\: int\}, array\{per_page\: int, total_items\: array\|int, total_pages\: \(float\|false\)\} given\.$#'
 			identifier: argument.type
@@ -53577,6 +53619,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/MobileAppBanner.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\CustomizeStoreWithBlocks'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\CustomizeStoreWithBlocks\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -53595,6 +53643,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/CustomizeStoreWithBlocks.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\CustomizingProductCatalog'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php
+
 		-
 			message: '#^Cannot access property \$products on array\|object\.$#'
 			identifier: property.nonObject
@@ -53619,6 +53673,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/CustomizingProductCatalog.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\EUVATNumber'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/EUVATNumber.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EUVATNumber\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -53631,6 +53691,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/EUVATNumber.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\EditProductsOnTheMove'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EditProductsOnTheMove\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -53643,12 +53709,30 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/EditProductsOnTheMove.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\EmailImprovements'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/EmailImprovements.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\EmailImprovements\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
 			path: src/Internal/Admin/Notes/EmailImprovements.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\ExtensionsWithoutSubscription'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/ExtensionsWithoutSubscription.php
+
+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\FirstProduct'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/FirstProduct.php
+
 		-
 			message: '#^Cannot access property \$total on array\|object\.$#'
 			identifier: property.nonObject
@@ -53667,6 +53751,18 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/FirstProduct.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\FullRefundFixDataToolNotice'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/FullRefundFixDataToolNotice.php
+
+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\GivingFeedbackNotes'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/GivingFeedbackNotes.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\GivingFeedbackNotes\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -53697,6 +53793,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\InstallJPAndWCSPlugins'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php
+
 		-
 			message: '#^Cannot call method save\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
@@ -53745,6 +53847,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/InstallJPAndWCSPlugins.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\LaunchChecklist'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/LaunchChecklist.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\LaunchChecklist\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -53757,6 +53865,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/LaunchChecklist.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\MagentoMigration'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/MagentoMigration.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MagentoMigration\:\:is_applicable\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -53775,6 +53889,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/MagentoMigration.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\ManageOrdersOnTheGo'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/ManageOrdersOnTheGo.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\ManageOrdersOnTheGo\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note\|null but empty return statement found\.$#'
 			identifier: return.empty
@@ -53799,6 +53919,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/MarketingJetpack.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\MarketingJetpack'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/MarketingJetpack.php
+
 		-
 			message: '#^Cannot call method get_status\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
@@ -53835,6 +53961,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/MarketingJetpack.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\MigrateFromShopify'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/MigrateFromShopify.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MigrateFromShopify\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -53847,6 +53979,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/MigrateFromShopify.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\MobileApp'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/MobileApp.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\MobileApp\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -53883,6 +54021,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/NewSalesRecord.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\NewSalesRecord'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/NewSalesRecord.php
+
 		-
 			message: '#^Cannot call method get_content_data\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
@@ -53961,6 +54105,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/OnboardingPayments.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\OnboardingPayments'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/OnboardingPayments.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnboardingPayments\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -53973,6 +54123,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/OnboardingPayments.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\OnlineClothingStore'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/OnlineClothingStore.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\OnlineClothingStore\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -54039,6 +54195,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/OrderMilestones.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\PaymentsMoreInfoNeeded'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php
+
 		-
 			message: '#^Cannot call method has_incentive\(\) on Automattic\\WooCommerce\\Internal\\Admin\\WcPayWelcomePage\|null\.$#'
 			identifier: method.nonObject
@@ -54057,6 +54219,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/PaymentsMoreInfoNeeded.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\PaymentsRemindMeLater'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php
+
 		-
 			message: '#^Cannot call method has_incentive\(\) on Automattic\\WooCommerce\\Internal\\Admin\\WcPayWelcomePage\|null\.$#'
 			identifier: method.nonObject
@@ -54075,6 +54243,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/PaymentsRemindMeLater.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\PerformanceOnMobile'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/PerformanceOnMobile.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PerformanceOnMobile\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -54087,6 +54261,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/PerformanceOnMobile.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\PersonalizeStore'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/PersonalizeStore.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\PersonalizeStore\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -54099,6 +54279,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/PersonalizeStore.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\RealTimeOrderAlerts'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\RealTimeOrderAlerts\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note but empty return statement found\.$#'
 			identifier: return.empty
@@ -54111,6 +54297,24 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/RealTimeOrderAlerts.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\RefundDoubleCountToolNotice'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/RefundDoubleCountToolNotice.php
+
+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\ScheduledUpdatesPromotion'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/ScheduledUpdatesPromotion.php
+
+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\SellingOnlineCourses'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/SellingOnlineCourses.php
+
 		-
 			message: '#^Cannot access offset ''industry'' on object\.$#'
 			identifier: offsetAccess.nonOffsetAccessible
@@ -54129,6 +54333,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/SellingOnlineCourses.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\TrackingOptIn'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/TrackingOptIn.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\TrackingOptIn\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note\|null but empty return statement found\.$#'
 			identifier: return.empty
@@ -54189,6 +54399,12 @@ parameters:
 			count: 2
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\WooCommercePayments'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/WooCommercePayments.php
+
 		-
 			message: '#^Cannot call method get_action\(\) on Automattic\\WooCommerce\\Admin\\Notes\\Note\|true\.$#'
 			identifier: method.nonObject
@@ -54249,6 +54465,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Notes/WooCommercePayments.php

+		-
+			message: '#^Call to function method_exists\(\) with ''Automattic\\\\WooCommerce\\\\Internal\\\\Admin\\\\Notes\\\\WooCommerceSubscriptions'' and ''get_note'' will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/Admin/Notes/WooCommerceSubscriptions.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Admin\\Notes\\WooCommerceSubscriptions\:\:get_note\(\) should return Automattic\\WooCommerce\\Admin\\Notes\\Note\|null but empty return statement found\.$#'
 			identifier: return.empty
@@ -54849,18 +55071,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Orders/ListTable.php

-		-
-			message: '#^Cannot call method date\(\) on WC_DateTime\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Orders/ListTable.php
-
-		-
-			message: '#^Cannot call method date_i18n\(\) on WC_DateTime\|null\.$#'
-			identifier: method.nonObject
-			count: 2
-			path: src/Internal/Admin/Orders/ListTable.php
-
 		-
 			message: '#^Cannot call method delete\(\) on WC_Order\|WC_Order_Refund\|false\.$#'
 			identifier: method.nonObject
@@ -54873,12 +55083,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Orders/ListTable.php

-		-
-			message: '#^Cannot call method getTimestamp\(\) on WC_DateTime\|null\.$#'
-			identifier: method.nonObject
-			count: 1
-			path: src/Internal/Admin/Orders/ListTable.php
-
 		-
 			message: '#^Cannot call method get_status\(\) on WC_Order\|WC_Order_Refund\|false\.$#'
 			identifier: method.nonObject
@@ -55017,12 +55221,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Orders/ListTable.php

-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{\$this\(Automattic\\WooCommerce\\Internal\\Admin\\Orders\\ListTable\), non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Orders/ListTable.php
-
 		-
 			message: '#^Parameter \#1 \$order of method Automattic\\WooCommerce\\Internal\\DataStores\\Orders\\OrdersTableDataStore\:\:untrash_order\(\) expects WC_Order, WC_Order\|WC_Order_Refund\|false given\.$#'
 			identifier: argument.type
@@ -55311,24 +55509,12 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Orders/PageController.php

-		-
-			message: '#^Parameter \#1 \$post_type of function get_post_type_object expects string, array\<string\>\|string given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Orders/PageController.php
-
 		-
 			message: '#^Parameter \#1 \$post_type_object of function get_post_type_labels expects object, WP_Post_Type\|null given\.$#'
 			identifier: argument.type
 			count: 1
 			path: src/Internal/Admin/Orders/PageController.php

-		-
-			message: '#^Parameter \#1 \$type of function wc_get_order_type expects string, array\<string\>\|string given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Orders/PageController.php
-
 		-
 			message: '#^Parameter \#2 \$callback of function add_action expects callable\(\)\: mixed, ''register_menu'' given\.$#'
 			identifier: argument.type
@@ -56109,78 +56295,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Settings/PaymentsProviders/PayPal.php

-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''get_connection_url''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''get_onboarding_not…''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''get_option''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''get_provider_links''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''get_recommended…''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''get_settings_url''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''is_account_connected''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''is_account…''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''is_connected''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''is_in_test_mode…''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''is_onboarding…''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 3
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
-		-
-			message: '#^Call to function is_callable\(\) with array\{WC_Payment_Gateway, ''is_test_mode…''\} will always evaluate to true\.$#'
-			identifier: function.alreadyNarrowedType
-			count: 1
-			path: src/Internal/Admin/Settings/PaymentsProviders/PaymentGateway.php
-
 		-
 			message: '#^Parameter \#1 \$array \(list\) of array_values is already a list, call has no effect\.$#'
 			identifier: arrayValues.list
@@ -56446,10 +56560,16 @@ parameters:
 			path: src/Internal/Admin/Settings/PaymentsRestController.php

 		-
-			message: '#^Parameter \#1 \$haystack of function str_ends_with expects string\|null, string\|false given\.$#'
-			identifier: argument.type
+			message: '#^Left side of && is always true\.$#'
+			identifier: booleanAnd.leftAlwaysTrue
 			count: 1
-			path: src/Internal/Admin/Settings/Utils.php
+			path: src/Internal/Admin/Settings/SettingsUISchema.php
+
+		-
+			message: '#^Right side of && is always true\.$#'
+			identifier: booleanAnd.rightAlwaysTrue
+			count: 1
+			path: src/Internal/Admin/Settings/SettingsUISchema.php

 		-
 			message: '#^Parameter \#1 \$json of function json_decode expects string, string\|false given\.$#'
@@ -56463,12 +56583,6 @@ parameters:
 			count: 1
 			path: src/Internal/Admin/Settings/Utils.php

-		-
-			message: '#^Parameter \#1 \$string of function substr expects string, string\|false given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/Admin/Settings/Utils.php
-
 		-
 			message: '#^Strict comparison using \!\=\= between null and string will always evaluate to true\.$#'
 			identifier: notIdentical.alwaysTrue
@@ -58293,12 +58407,6 @@ parameters:
 			count: 1
 			path: src/Internal/DataStores/Orders/OrdersTableDataStore.php

-		-
-			message: '#^Instanceof between WC_Abstract_Order and WC_Abstract_Order will always evaluate to true\.$#'
-			identifier: instanceof.alwaysTrue
-			count: 3
-			path: src/Internal/DataStores/Orders/OrdersTableDataStore.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\DataStores\\Orders\\OrdersTableDataStore\:\:backfill_post_record\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -58470,12 +58578,6 @@ parameters:
 			count: 1
 			path: src/Internal/DataStores/Orders/OrdersTableDataStore.php

-		-
-			message: '#^Parameter \#1 \$function of function call_user_func_array expects callable\(\)\: mixed, array\{Abstract_WC_Order_Data_Store_CPT, non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/DataStores/Orders/OrdersTableDataStore.php
-
 		-
 			message: '#^Parameter \#1 \$ids of method Automattic\\WooCommerce\\Internal\\DataStores\\Orders\\OrdersTableDataStore\:\:get_order_data_for_ids\(\) expects array\<int\>, list\<int\|string\> given\.$#'
 			identifier: argument.type
@@ -58728,6 +58830,12 @@ parameters:
 			count: 1
 			path: src/Internal/DataStores/Orders/OrdersTableMetaQuery.php

+		-
+			message: '#^Call to function in_array\(\) with arguments ''\.\.\.''\|''\<''\|''\<\=''\|''\>''\|''\>\='', array\{''\>'', ''\>\='', ''\='', ''\<\='', ''\<'', ''\.\.\.''\} and true will always evaluate to true\.$#'
+			identifier: function.alreadyNarrowedType
+			count: 1
+			path: src/Internal/DataStores/Orders/OrdersTableQuery.php
+
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\DataStores\\Orders\\OrdersTableQuery\:\:build_count_query\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -59461,7 +59569,7 @@ parameters:
 			path: src/Internal/Logging/RemoteLogger.php

 		-
-			message: '#^Parameter \#2 \$array of function implode expects array\<string\>, array\<array\|string\> given\.$#'
+			message: '#^Parameter \#2 \$array of function implode expects array\<string\>, array\<array\<mixed, mixed\>\|string\> given\.$#'
 			identifier: argument.type
 			count: 1
 			path: src/Internal/Logging/RemoteLogger.php
@@ -59562,12 +59670,6 @@ parameters:
 			count: 2
 			path: src/Internal/Orders/OrderActionsRestController.php

-		-
-			message: '#^Instanceof between WC_Email and WC_Email will always evaluate to true\.$#'
-			identifier: instanceof.alwaysTrue
-			count: 1
-			path: src/Internal/Orders/OrderActionsRestController.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\Orders\\OrderActionsRestController\:\:check_permissions\(\) has parameter \$request with generic class WP_REST_Request but does not specify its types\: T$#'
 			identifier: missingType.generics
@@ -61362,36 +61464,18 @@ parameters:
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/Orders/ActionController.php

-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Orders\\ActionController\:\:action_payment_complete\(\) is unused\.$#'
-			identifier: method.unused
-			count: 1
-			path: src/Internal/RestApi/Routes/V4/Orders/ActionController.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Orders\\ActionController\:\:action_reset_download_permissions\(\) has parameter \$request with generic class WP_REST_Request but does not specify its types\: T$#'
 			identifier: missingType.generics
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/Orders/ActionController.php

-		-
-			message: '#^Method Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Orders\\ActionController\:\:action_reset_download_permissions\(\) is unused\.$#'
-			identifier: method.unused
-			count: 1
-			path: src/Internal/RestApi/Routes/V4/Orders/ActionController.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Orders\\ActionController\:\:run_actions\(\) has parameter \$request with generic class WP_REST_Request but does not specify its types\: T$#'
 			identifier: missingType.generics
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/Orders/ActionController.php

-		-
-			message: '#^Parameter \#1 \$function of function call_user_func expects callable\(\)\: mixed, array\{\$this\(Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Orders\\ActionController\), non\-falsy\-string\} given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/RestApi/Routes/V4/Orders/ActionController.php
-
 		-
 			message: '#^Parameter \#1 \$text of function esc_html expects string, string\|null given\.$#'
 			identifier: argument.type
@@ -61503,13 +61587,13 @@ parameters:
 		-
 			message: '#^Instanceof between WC_Order and WC_Order will always evaluate to true\.$#'
 			identifier: instanceof.alwaysTrue
-			count: 1
+			count: 2
 			path: src/Internal/RestApi/Routes/V4/Orders/Controller.php

 		-
 			message: '#^Left side of && is always true\.$#'
 			identifier: booleanAnd.leftAlwaysTrue
-			count: 1
+			count: 2
 			path: src/Internal/RestApi/Routes/V4/Orders/Controller.php

 		-
@@ -61638,6 +61722,12 @@ parameters:
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/Orders/Controller.php

+		-
+			message: '#^Variable \$order might not be defined\.$#'
+			identifier: variable.undefined
+			count: 1
+			path: src/Internal/RestApi/Routes/V4/Orders/Controller.php
+
 		-
 			message: '#^Call to method get_taxes\(\) on an unknown class Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Orders\\Schema\\WC_Order_Item_Fee\.$#'
 			identifier: class.notFound
@@ -61947,7 +62037,7 @@ parameters:
 		-
 			message: '#^Access to an undefined property WC_Data\:\:\$post_type\.$#'
 			identifier: property.notFound
-			count: 1
+			count: 2
 			path: src/Internal/RestApi/Routes/V4/Products/Controller.php

 		-
@@ -62313,7 +62403,7 @@ parameters:
 		-
 			message: '#^Parameter \#1 \$value of method WC_Product_Attribute\:\:set_name\(\) expects string, array\|string given\.$#'
 			identifier: argument.type
-			count: 2
+			count: 1
 			path: src/Internal/RestApi/Routes/V4/Products/Controller.php

 		-
@@ -62712,12 +62802,6 @@ parameters:
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/Settings/Account/Schema/AccountSettingsSchema.php

-		-
-			message: '#^Offset ''order'' on array\{title\: mixed, description\: mixed, order\: int, fields\: list\<non\-empty\-array\>\} on left side of \?\? always exists and is not nullable\.$#'
-			identifier: nullCoalesce.offset
-			count: 2
-			path: src/Internal/RestApi/Routes/V4/Settings/Account/Schema/AccountSettingsSchema.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Settings\\Email\\Controller\:\:get_item\(\) has parameter \$request with generic class WP_REST_Request but does not specify its types\: T$#'
 			identifier: missingType.generics
@@ -62994,12 +63078,6 @@ parameters:
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/Settings/General/Schema/GeneralSettingsSchema.php

-		-
-			message: '#^Offset ''order'' on array\{title\: mixed, description\: mixed, order\: int, fields\: list\<non\-empty\-array\>\} on left side of \?\? always exists and is not nullable\.$#'
-			identifier: nullCoalesce.offset
-			count: 2
-			path: src/Internal/RestApi/Routes/V4/Settings/General/Schema/GeneralSettingsSchema.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Settings\\OfflinePaymentMethods\\Controller\:\:get_item_response\(\) has parameter \$request with generic class WP_REST_Request but does not specify its types\: T$#'
 			identifier: missingType.generics
@@ -63174,12 +63252,6 @@ parameters:
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/Settings/Products/Schema/ProductSettingsSchema.php

-		-
-			message: '#^Offset ''order'' on array\{title\: mixed, description\: mixed, order\: int, fields\: list\<non\-empty\-array\>\} on left side of \?\? always exists and is not nullable\.$#'
-			identifier: nullCoalesce.offset
-			count: 2
-			path: src/Internal/RestApi/Routes/V4/Settings/Products/Schema/ProductSettingsSchema.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\Settings\\Tax\\Controller\:\:get_item\(\) has parameter \$request with generic class WP_REST_Request but does not specify its types\: T$#'
 			identifier: missingType.generics
@@ -63234,12 +63306,6 @@ parameters:
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/Settings/Tax/Schema/TaxSettingsSchema.php

-		-
-			message: '#^Offset ''order'' on array\{title\: mixed, description\: mixed, order\: int, fields\: list\<non\-empty\-array\>\} on left side of \?\? always exists and is not nullable\.$#'
-			identifier: nullCoalesce.offset
-			count: 2
-			path: src/Internal/RestApi/Routes/V4/Settings/Tax/Schema/TaxSettingsSchema.php
-
 		-
 			message: '#^@param Automattic\\WooCommerce\\Internal\\RestApi\\Routes\\V4\\ShippingZoneMethod\\WC_Shipping_Method \$method does not accept actual type of parameter\: WC_Shipping_Method\|true\.$#'
 			identifier: parameter.phpDocType
@@ -63444,6 +63510,12 @@ parameters:
 			count: 1
 			path: src/Internal/RestApi/Routes/V4/ShippingZoneMethod/ShippingMethodSchema.php

+		-
+			message: '#^Offset ''is_enabled'' might not exist on non\-empty\-array\{is_enabled\?\: 0\|1, method_order\?\: int\}\.$#'
+			identifier: offsetAccess.notFound
+			count: 1
+			path: src/Internal/RestApi/Routes/V4/ShippingZoneMethod/ShippingZoneMethodService.php
+
 		-
 			message: '#^Call to an undefined method WP_Error\|WP_REST_Response\:\:header\(\)\.$#'
 			identifier: method.notFound
@@ -63961,7 +64033,7 @@ parameters:
 			path: src/Internal/StockNotifications/Admin/Templates/html-admin-notification-create.php

 		-
-			message: '#^Parameter \#1 \$text of function esc_attr expects string, int\<min, \-1\>\|int\<1, max\> given\.$#'
+			message: '#^Parameter \#1 \$text of function esc_attr expects string, int\<1, max\> given\.$#'
 			identifier: argument.type
 			count: 2
 			path: src/Internal/StockNotifications/Admin/Templates/html-admin-notification-create.php
@@ -64560,12 +64632,6 @@ parameters:
 			count: 1
 			path: src/Internal/TransientFiles/TransientFilesEngine.php

-		-
-			message: '#^Parameter \#1 \$filename of function fopen expects string, string\|null given\.$#'
-			identifier: argument.type
-			count: 1
-			path: src/Internal/TransientFiles/TransientFilesEngine.php
-
 		-
 			message: '#^Parameter \#1 \$fp of function fclose expects resource, resource\|false given\.$#'
 			identifier: argument.type
@@ -64662,6 +64728,12 @@ parameters:
 			count: 1
 			path: src/Internal/Utilities/FilesystemUtil.php

+		-
+			message: '#^Parameter \#2 \$allowed_html of function wp_kses expects array\<array\>\|string, array given\.$#'
+			identifier: argument.type
+			count: 1
+			path: src/Internal/Utilities/HtmlSanitizer.php
+
 		-
 			message: '#^Action callback returns array but should not return anything\.$#'
 			identifier: return.void
@@ -65400,12 +65472,6 @@ parameters:
 			count: 1
 			path: src/StoreApi/Routes/V1/CartApplyCoupon.php

-		-
-			message: '#^Dead catch \- WC_REST_Exception is never thrown in the try block\.$#'
-			identifier: catch.neverThrown
-			count: 1
-			path: src/StoreApi/Routes/V1/CartCoupons.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\StoreApi\\Routes\\V1\\CartCoupons\:\:get_route_delete_response\(\) has parameter \$request with generic class WP_REST_Request but does not specify its types\: T$#'
 			identifier: missingType.generics
@@ -65622,12 +65688,6 @@ parameters:
 			count: 2
 			path: src/StoreApi/Routes/V1/Checkout.php

-		-
-			message: '#^Instanceof between Automattic\\WooCommerce\\StoreApi\\Payments\\PaymentResult and Automattic\\WooCommerce\\StoreApi\\Payments\\PaymentResult will always evaluate to true\.$#'
-			identifier: instanceof.alwaysTrue
-			count: 1
-			path: src/StoreApi/Routes/V1/Checkout.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\StoreApi\\Routes\\V1\\Checkout\:\:add_data_to_error_object\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -65862,12 +65922,6 @@ parameters:
 			count: 1
 			path: src/StoreApi/Routes/V1/CheckoutOrder.php

-		-
-			message: '#^Instanceof between Automattic\\WooCommerce\\StoreApi\\Payments\\PaymentResult and Automattic\\WooCommerce\\StoreApi\\Payments\\PaymentResult will always evaluate to true\.$#'
-			identifier: instanceof.alwaysTrue
-			count: 1
-			path: src/StoreApi/Routes/V1/CheckoutOrder.php
-
 		-
 			message: '#^Method Automattic\\WooCommerce\\StoreApi\\Routes\\V1\\CheckoutOrder\:\:cart_updated\(\) has no return type specified\.$#'
 			identifier: missingType.return
@@ -66781,7 +66835,7 @@ parameters:
 			path: src/StoreApi/Schemas/V1/ProductAttributeSchema.php

 		-
-			message: '#^Parameter \#1 \$data of function esc_sql expects array\|string, int\<0, max\>\|string given\.$#'
+			message: '#^Parameter \#1 \$data of function esc_sql expects array\|string, int\|string given\.$#'
 			identifier: argument.type
 			count: 1
 			path: src/StoreApi/Schemas/V1/ProductBrandSchema.php
@@ -66793,7 +66847,7 @@ parameters:
 			path: src/StoreApi/Schemas/V1/ProductBrandSchema.php

 		-
-			message: '#^Parameter \#1 \$data of function esc_sql expects array\|string, int\<0, max\>\|string given\.$#'
+			message: '#^Parameter \#1 \$data of function esc_sql expects array\|string, int\|string given\.$#'
 			identifier: argument.type
 			count: 1
 			path: src/StoreApi/Schemas/V1/ProductCategorySchema.php
@@ -67188,6 +67242,12 @@ parameters:
 			count: 1
 			path: src/StoreApi/Utilities/CartTokenUtils.php

+		-
+			message: '#^Instanceof between Automattic\\WooCommerce\\StoreApi\\Payments\\PaymentResult and Automattic\\WooCommerce\\StoreApi\\Payments\\PaymentResult will always evaluate to true\.$#'
+			identifier: instanceof.alwaysTrue
+			count: 1
+			path: src/StoreApi/Utilities/CheckoutTrait.php
+
 		-
 			message: '#^Access to an undefined property object\:\:\$header\.$#'
 			identifier: property.notFound