Skip to content

Commit 03efcf0

Browse files
authored
skip existing Iterator return in AddReturnDocblockDataProviderRector (#7367)
* skip existing Iterator return in AddReturnDocblockDataProviderRector * add fixture with same-array union
1 parent 4b182bc commit 03efcf0

File tree

6 files changed

+109
-0
lines changed

6 files changed

+109
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\AddReturnDocblockDataProviderRector\Fixture;
4+
5+
use PHPUnit\Framework\Attributes\DataProvider;
6+
use PHPUnit\Framework\TestCase;
7+
8+
final class SkipAlreadySetType extends TestCase
9+
{
10+
#[DataProvider('provideData')]
11+
public function testSomething()
12+
{
13+
}
14+
15+
/**
16+
* @return \Generator<array<int, array{0: string, 1: string}>>
17+
*/
18+
public static function provideData(): \Generator
19+
{
20+
yield ['data1', 'data2'];
21+
yield ['item4', 'item5'];
22+
}
23+
24+
#[DataProvider('provideDataNext')]
25+
public function testSomethingElse()
26+
{
27+
}
28+
29+
/**
30+
* @return \Iterator<array<int, array{0: string, 1: string}>>
31+
*/
32+
public static function provideDataNext(): \Iterator
33+
{
34+
yield ['data1', 'data2'];
35+
yield ['item4', 'item5'];
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\AddReturnDocblockDataProviderRector\Fixture;
4+
5+
use Nette\Utils\FileSystem;
6+
use PHPUnit\Framework\Attributes\DataProvider;
7+
use PHPUnit\Framework\TestCase;
8+
9+
final class UnionSameArrayType extends TestCase
10+
{
11+
#[DataProvider('provideData')]
12+
public function testSomething()
13+
{
14+
}
15+
16+
public static function provideData(): \Iterator
17+
{
18+
yield ['...', __DIR__ . '/Source/expected/expected.txt'];
19+
yield ["-old\n+new", __DIR__ . '/Source/expected/expected_old_new.txt'];
20+
21+
yield [
22+
FileSystem::read('...'),
23+
__DIR__ . '/Fixture/expected_with_full_diff_by_phpunit.diff',
24+
];
25+
}
26+
}
27+
28+
?>
29+
-----
30+
<?php
31+
32+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\AddReturnDocblockDataProviderRector\Fixture;
33+
34+
use Nette\Utils\FileSystem;
35+
use PHPUnit\Framework\Attributes\DataProvider;
36+
use PHPUnit\Framework\TestCase;
37+
38+
final class UnionSameArrayType extends TestCase
39+
{
40+
#[DataProvider('provideData')]
41+
public function testSomething()
42+
{
43+
}
44+
45+
/**
46+
* @return \Iterator<array<int, string>>
47+
*/
48+
public static function provideData(): \Iterator
49+
{
50+
yield ['...', __DIR__ . '/Source/expected/expected.txt'];
51+
yield ["-old\n+new", __DIR__ . '/Source/expected/expected_old_new.txt'];
52+
53+
yield [
54+
FileSystem::read('...'),
55+
__DIR__ . '/Fixture/expected_with_full_diff_by_phpunit.diff',
56+
];
57+
}
58+
}
59+
60+
?>

tests/BetterPhpDocParser/PhpDocInfo/PhpDocInfoPrinter/MultilineTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public function test(string $docFilePath): void
2323
$this->assertSame($docComment, $printedPhpDocInfo);
2424
}
2525

26+
/**
27+
* @return Iterator<array<int, string>>
28+
*/
2629
public static function provideData(): Iterator
2730
{
2831
yield [__DIR__ . '/Source/Multiline/multiline2.txt'];

tests/Console/Formatter/ColorConsoleDiffFormatterTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ public function test(string $content, string $expectedFormattedFileContent): voi
2828
$this->assertStringEqualsFile($expectedFormattedFileContent, $formattedContent);
2929
}
3030

31+
/**
32+
* @return Iterator<array<int, string>>
33+
*/
3134
public static function provideData(): Iterator
3235
{
3336
yield ['...', __DIR__ . '/Source/expected/expected.txt'];

tests/DependencyInjection/ConfigurableRectorImportConfigCallsMergeTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ public function testMainConfigValues(string $configFile, array $expectedConfigur
3030
$this->assertSame($expectedConfiguration, $renamedClassesDataCollector->getOldToNewClasses());
3131
}
3232

33+
/**
34+
* @return Iterator<(array<int, array<string, string>>|array<int, string>)>
35+
*/
3336
public static function provideData(): Iterator
3437
{
3538
yield [

tests/NodeTypeResolver/PerNodeTypeResolver/ClassAndInterfaceTypeResolver/ClassTypeResolverTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ public function test(string $file, int $nodePosition, ObjectType $expectedObject
3232
$this->assertSame($expectedObjectType->getClassName(), $resolvedType->getClassName());
3333
}
3434

35+
/**
36+
* @return Iterator<array<int, (int|ObjectType|string)>>
37+
*/
3538
public static function dataProvider(): Iterator
3639
{
3740
yield [

0 commit comments

Comments
 (0)