From befd41068ceee412c4a1b0ed0c1b26aa4e1f1b62 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 29 Sep 2025 19:09:19 +0200 Subject: [PATCH 1/2] skip existing Iterator return in AddReturnDocblockDataProviderRector --- .../Fixture/skip_already_set_type.php.inc | 37 +++++++++++++++++++ .../PhpDocInfoPrinter/MultilineTest.php | 3 ++ .../ColorConsoleDiffFormatterTest.php | 3 ++ ...urableRectorImportConfigCallsMergeTest.php | 3 ++ .../ClassTypeResolverTest.php | 3 ++ 5 files changed, 49 insertions(+) create mode 100644 rules-tests/TypeDeclarationDocblocks/Rector/Class_/AddReturnDocblockDataProviderRector/Fixture/skip_already_set_type.php.inc diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/Class_/AddReturnDocblockDataProviderRector/Fixture/skip_already_set_type.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/AddReturnDocblockDataProviderRector/Fixture/skip_already_set_type.php.inc new file mode 100644 index 00000000000..b20ce59e523 --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/AddReturnDocblockDataProviderRector/Fixture/skip_already_set_type.php.inc @@ -0,0 +1,37 @@ +> + */ + public static function provideData(): \Generator + { + yield ['data1', 'data2']; + yield ['item4', 'item5']; + } + + #[DataProvider('provideDataNext')] + public function testSomethingElse() + { + } + + /** + * @return \Iterator> + */ + public static function provideDataNext(): \Iterator + { + yield ['data1', 'data2']; + yield ['item4', 'item5']; + } +} diff --git a/tests/BetterPhpDocParser/PhpDocInfo/PhpDocInfoPrinter/MultilineTest.php b/tests/BetterPhpDocParser/PhpDocInfo/PhpDocInfoPrinter/MultilineTest.php index e4d284f900d..f66d28cd34e 100644 --- a/tests/BetterPhpDocParser/PhpDocInfo/PhpDocInfoPrinter/MultilineTest.php +++ b/tests/BetterPhpDocParser/PhpDocInfo/PhpDocInfoPrinter/MultilineTest.php @@ -23,6 +23,9 @@ public function test(string $docFilePath): void $this->assertSame($docComment, $printedPhpDocInfo); } + /** + * @return Iterator> + */ public static function provideData(): Iterator { yield [__DIR__ . '/Source/Multiline/multiline2.txt']; diff --git a/tests/Console/Formatter/ColorConsoleDiffFormatterTest.php b/tests/Console/Formatter/ColorConsoleDiffFormatterTest.php index b23764cf93e..0f6b96e02c7 100644 --- a/tests/Console/Formatter/ColorConsoleDiffFormatterTest.php +++ b/tests/Console/Formatter/ColorConsoleDiffFormatterTest.php @@ -28,6 +28,9 @@ public function test(string $content, string $expectedFormattedFileContent): voi $this->assertStringEqualsFile($expectedFormattedFileContent, $formattedContent); } + /** + * @return Iterator<(array|array)> + */ public static function provideData(): Iterator { yield ['...', __DIR__ . '/Source/expected/expected.txt']; diff --git a/tests/DependencyInjection/ConfigurableRectorImportConfigCallsMergeTest.php b/tests/DependencyInjection/ConfigurableRectorImportConfigCallsMergeTest.php index 7f4bbf3a42d..671b7f2ed04 100644 --- a/tests/DependencyInjection/ConfigurableRectorImportConfigCallsMergeTest.php +++ b/tests/DependencyInjection/ConfigurableRectorImportConfigCallsMergeTest.php @@ -30,6 +30,9 @@ public function testMainConfigValues(string $configFile, array $expectedConfigur $this->assertSame($expectedConfiguration, $renamedClassesDataCollector->getOldToNewClasses()); } + /** + * @return Iterator<(array>|array)> + */ public static function provideData(): Iterator { yield [ diff --git a/tests/NodeTypeResolver/PerNodeTypeResolver/ClassAndInterfaceTypeResolver/ClassTypeResolverTest.php b/tests/NodeTypeResolver/PerNodeTypeResolver/ClassAndInterfaceTypeResolver/ClassTypeResolverTest.php index 91baf750762..fd6673a5f1b 100644 --- a/tests/NodeTypeResolver/PerNodeTypeResolver/ClassAndInterfaceTypeResolver/ClassTypeResolverTest.php +++ b/tests/NodeTypeResolver/PerNodeTypeResolver/ClassAndInterfaceTypeResolver/ClassTypeResolverTest.php @@ -32,6 +32,9 @@ public function test(string $file, int $nodePosition, ObjectType $expectedObject $this->assertSame($expectedObjectType->getClassName(), $resolvedType->getClassName()); } + /** + * @return Iterator> + */ public static function dataProvider(): Iterator { yield [ From 795c2fb4cd2352920b0fb60232ee496f11a78082 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 29 Sep 2025 19:14:37 +0200 Subject: [PATCH 2/2] add fixture with same-array union --- .../Fixture/union_same_array_type.php.inc | 60 +++++++++++++++++++ .../ColorConsoleDiffFormatterTest.php | 2 +- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 rules-tests/TypeDeclarationDocblocks/Rector/Class_/AddReturnDocblockDataProviderRector/Fixture/union_same_array_type.php.inc diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/Class_/AddReturnDocblockDataProviderRector/Fixture/union_same_array_type.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/AddReturnDocblockDataProviderRector/Fixture/union_same_array_type.php.inc new file mode 100644 index 00000000000..68a3c43e204 --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/AddReturnDocblockDataProviderRector/Fixture/union_same_array_type.php.inc @@ -0,0 +1,60 @@ + +----- +> + */ + public static function provideData(): \Iterator + { + yield ['...', __DIR__ . '/Source/expected/expected.txt']; + yield ["-old\n+new", __DIR__ . '/Source/expected/expected_old_new.txt']; + + yield [ + FileSystem::read('...'), + __DIR__ . '/Fixture/expected_with_full_diff_by_phpunit.diff', + ]; + } +} + +?> diff --git a/tests/Console/Formatter/ColorConsoleDiffFormatterTest.php b/tests/Console/Formatter/ColorConsoleDiffFormatterTest.php index 0f6b96e02c7..e4fd7d4f7c1 100644 --- a/tests/Console/Formatter/ColorConsoleDiffFormatterTest.php +++ b/tests/Console/Formatter/ColorConsoleDiffFormatterTest.php @@ -29,7 +29,7 @@ public function test(string $content, string $expectedFormattedFileContent): voi } /** - * @return Iterator<(array|array)> + * @return Iterator> */ public static function provideData(): Iterator {