From a063043f6d3157cb2c31b43ddb5d649677188b6b Mon Sep 17 00:00:00 2001 From: Sander Muller Date: Mon, 31 Aug 2026 11:00:38 +0200 Subject: [PATCH] Add fixtures for arrow functions returning a ?? expression The rule had no coverage for an arrow function whose body is a null coalescing expression. On 2.6.4 all three of these cases were typed `: null`, which is a TypeError for the two that return a value. --- .../coalesce_non_nullable_param.php.inc | 27 +++++++++++++++++++ .../Fixture/coalesce_nullable_param.php.inc | 27 +++++++++++++++++++ .../Fixture/skip_coalesce_mixed.php.inc | 11 ++++++++ 3 files changed, 65 insertions(+) create mode 100644 rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/coalesce_non_nullable_param.php.inc create mode 100644 rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/coalesce_nullable_param.php.inc create mode 100644 rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/skip_coalesce_mixed.php.inc diff --git a/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/coalesce_non_nullable_param.php.inc b/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/coalesce_non_nullable_param.php.inc new file mode 100644 index 00000000000..8ed3a9ddf4c --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/coalesce_non_nullable_param.php.inc @@ -0,0 +1,27 @@ + $value ?? null; + } +} + +?> +----- + $value ?? null; + } +} + +?> diff --git a/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/coalesce_nullable_param.php.inc b/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/coalesce_nullable_param.php.inc new file mode 100644 index 00000000000..b77812a4d41 --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/coalesce_nullable_param.php.inc @@ -0,0 +1,27 @@ + $value ?? null; + } +} + +?> +----- + $value ?? null; + } +} + +?> diff --git a/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/skip_coalesce_mixed.php.inc b/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/skip_coalesce_mixed.php.inc new file mode 100644 index 00000000000..140121a8ca7 --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/ArrowFunction/AddArrowFunctionReturnTypeRector/Fixture/skip_coalesce_mixed.php.inc @@ -0,0 +1,11 @@ + $attributes['duration'] ?? null; + } +}