From e7c58f0b7efa28b5c3560dc84bfcbc75f7e54461 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 10 Jun 2019 10:19:21 +0200 Subject: [PATCH] Add assign ref support to AddDefaultValueForUndefinedVariableRector --- .../AddDefaultValueForUndefinedVariableRector.php | 4 +++- ...dDefaultValueForUndefinedVariableRectorTest.php | 1 + .../Fixture/skip_reference_assign.php.inc | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 packages/Php/tests/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector/Fixture/skip_reference_assign.php.inc diff --git a/packages/Php/src/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector.php b/packages/Php/src/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector.php index b63f6ec00de2..665f7a3efe5b 100644 --- a/packages/Php/src/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector.php +++ b/packages/Php/src/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector.php @@ -156,7 +156,9 @@ private function shouldSkipVariable(Variable $variable): bool { $parentNode = $variable->getAttribute(AttributeKey::PARENT_NODE); if ($parentNode instanceof Node) { - if ($parentNode instanceof Assign || $this->isStaticVariable($parentNode)) { + if ($parentNode instanceof Assign || $parentNode instanceof Node\Expr\AssignRef || $this->isStaticVariable( + $parentNode + )) { return true; } } diff --git a/packages/Php/tests/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector/AddDefaultValueForUndefinedVariableRectorTest.php b/packages/Php/tests/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector/AddDefaultValueForUndefinedVariableRectorTest.php index f9d502c87d23..e5dfe4d6ee14 100644 --- a/packages/Php/tests/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector/AddDefaultValueForUndefinedVariableRectorTest.php +++ b/packages/Php/tests/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector/AddDefaultValueForUndefinedVariableRectorTest.php @@ -21,6 +21,7 @@ public function test(): void // @see https://3v4l.org/ObtMn __DIR__ . '/Fixture/skip_list.php.inc', __DIR__ . '/Fixture/skip_foreach_assign.php.inc', + __DIR__ . '/Fixture/skip_reference_assign.php.inc', ]); } diff --git a/packages/Php/tests/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector/Fixture/skip_reference_assign.php.inc b/packages/Php/tests/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector/Fixture/skip_reference_assign.php.inc new file mode 100644 index 000000000000..8092da1a5359 --- /dev/null +++ b/packages/Php/tests/Rector/FunctionLike/AddDefaultValueForUndefinedVariableRector/Fixture/skip_reference_assign.php.inc @@ -0,0 +1,14 @@ +$collectionArray; + } +}