From e66754adeaad2e9cb67cf1784a6255285dfc542d Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 27 Nov 2023 14:43:57 +0100 Subject: [PATCH] [TypeDeclaration] Skip iterable already there in AddReturnTypeDeclarationFromYieldsRector (#5291) --- .../Fixture/on_closure.php.inc | 4 +- .../Fixture/return_iterator.php.inc | 27 -------------- .../Fixture/return_type_iterable.php.inc | 37 ------------------- .../Fixture/skip_return_type_iterable.php.inc | 16 ++++++++ ...dReturnTypeDeclarationFromYieldsRector.php | 2 +- 5 files changed, 19 insertions(+), 67 deletions(-) delete mode 100644 rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/return_iterator.php.inc delete mode 100644 rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/return_type_iterable.php.inc create mode 100644 rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/skip_return_type_iterable.php.inc diff --git a/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/on_closure.php.inc b/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/on_closure.php.inc index 6d69dc97cd3..c832871a9ec 100644 --- a/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/on_closure.php.inc +++ b/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/on_closure.php.inc @@ -2,7 +2,7 @@ namespace Rector\Tests\TypeDeclaration\Rector\FunctionLike\AddReturnTypeDeclarationFromYieldsRector\Fixture; -$func = function (): iterable { +$func = function () { yield 1; }; @@ -12,7 +12,7 @@ $func = function (): iterable { namespace Rector\Tests\TypeDeclaration\Rector\FunctionLike\AddReturnTypeDeclarationFromYieldsRector\Fixture; -$func = function (): \Iterator { +$func = function (): \Generator { yield 1; }; diff --git a/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/return_iterator.php.inc b/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/return_iterator.php.inc deleted file mode 100644 index 3c5cf5156ce..00000000000 --- a/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/return_iterator.php.inc +++ /dev/null @@ -1,27 +0,0 @@ - ------ - diff --git a/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/return_type_iterable.php.inc b/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/return_type_iterable.php.inc deleted file mode 100644 index 743a3d44d1e..00000000000 --- a/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/return_type_iterable.php.inc +++ /dev/null @@ -1,37 +0,0 @@ -getData(); - } - - private function getData(): array - { - return []; - } -} - -?> ------ -getData(); - } - - private function getData(): array - { - return []; - } -} - -?> diff --git a/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/skip_return_type_iterable.php.inc b/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/skip_return_type_iterable.php.inc new file mode 100644 index 00000000000..6586b5f2879 --- /dev/null +++ b/rules-tests/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector/Fixture/skip_return_type_iterable.php.inc @@ -0,0 +1,16 @@ +getData(); + } + + private function getData(): array + { + return []; + } +} diff --git a/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php b/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php index 809542caefc..02f6a126440 100644 --- a/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php +++ b/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php @@ -98,7 +98,7 @@ public function refactorWithScope(Node $node, Scope $scope): ?Node // skip already filled type if ($node->returnType instanceof Node && $this->isNames( $node->returnType, - ['Iterator', 'Generator', 'Traversable'] + ['Iterator', 'Generator', 'Traversable', 'iterable'] )) { return null; }