From 0f2098721b92f1fca16078355d033ec758de1c6f Mon Sep 17 00:00:00 2001 From: Dariusz Ruminski Date: Thu, 21 Jan 2021 19:23:37 +0100 Subject: [PATCH] NullableTypeDeclarationForDefaultNullValueFixer - support union types --- ...llableTypeDeclarationForDefaultNullValueFixer.php | 9 ++++++--- ...leTypeDeclarationForDefaultNullValueFixerTest.php | 12 ++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php b/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php index 4599c8a86f8..3ed4e0ba7f7 100644 --- a/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php +++ b/src/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixer.php @@ -126,11 +126,14 @@ protected function applyFix(\SplFileInfo $file, Tokens $tokens) private function fixFunctionParameters(Tokens $tokens, array $arguments) { foreach (array_reverse($arguments) as $argumentInfo) { - // If the parameter doesn't have a type declaration or a default value null we can continue if ( + // Skip, if the parameter + // - doesn't have a type declaration !$argumentInfo->hasTypeAnalysis() - || !$argumentInfo->hasDefault() - || 'null' !== strtolower($argumentInfo->getDefault()) + // type is a union + || false !== strpos($argumentInfo->getTypeAnalysis()->getName(), '|') + // - a default value is not null we can continue + || !$argumentInfo->hasDefault() || 'null' !== strtolower($argumentInfo->getDefault()) ) { continue; } diff --git a/tests/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixerTest.php b/tests/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixerTest.php index b94743d90cb..d12833a06e5 100644 --- a/tests/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixerTest.php +++ b/tests/Fixer/FunctionNotation/NullableTypeDeclarationForDefaultNullValueFixerTest.php @@ -417,12 +417,12 @@ public function testFix80($expected, $input = null) public function provideFix80Cases() { - yield [ + yield 'trailing comma' => [ ' [ ' [ + '