diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_no_named_args.php.inc b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_no_named_args.php.inc deleted file mode 100644 index dc24ec41..00000000 --- a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/provide_data_with_no_named_args.php.inc +++ /dev/null @@ -1,45 +0,0 @@ - ------ - diff --git a/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/skip_provide_data_with_no_named_args.php.inc b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/skip_provide_data_with_no_named_args.php.inc new file mode 100644 index 00000000..a7d9df0a --- /dev/null +++ b/rules-tests/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector/Fixture/skip_provide_data_with_no_named_args.php.inc @@ -0,0 +1,22 @@ + diff --git a/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php b/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php index 736f7800..83914942 100644 --- a/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php +++ b/rules/PHPUnit100/Rector/Class_/RemoveNamedArgsInDataProviderRector.php @@ -5,6 +5,7 @@ namespace Rector\PHPUnit\PHPUnit100\Rector\Class_; use PhpParser\Node; +use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayItem; use PhpParser\Node\Expr\Yield_; @@ -99,11 +100,14 @@ public function refactor(Node $node): ?Node /** @var Expression $stmt */ foreach ($dataProvider->getStmts() ?? [] as $stmt) { $expr = $stmt->expr; + $arrayChanged = false; if ($expr instanceof Yield_) { - $this->handleStmt($expr->value); - $hasChanged = true; + $arrayChanged = $this->handleArray($expr->value); } elseif ($expr instanceof Array_) { - $this->handleStmt($expr); + $arrayChanged = $this->handleArray($expr); + } + + if ($arrayChanged) { $hasChanged = true; } } @@ -116,16 +120,20 @@ public function refactor(Node $node): ?Node return null; } - private function handleStmt(Array_ $array): void + private function handleArray(Array_ $array): bool { + $hasChanged = false; foreach ($array->items as $item) { if (! $item instanceof ArrayItem) { continue; } - if (! $item->key instanceof Int_) { + if (! $item->key instanceof Int_ && $item->key instanceof Expr) { $item->key = null; + $hasChanged = true; } } + + return $hasChanged; } }