Skip to content

Commit bbfd6bc

Browse files
committed
[type-declaration-docblocks] Add PrivateClassMethodArrayDocblockParamFromLocalCallsRector
1 parent 1514b5e commit bbfd6bc

File tree

13 files changed

+456
-18
lines changed

13 files changed

+456
-18
lines changed

config/set/type-declaration-docblocks.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Rector\Config\RectorConfig;
66
use Rector\TypeDeclaration\Rector\ClassMethod\AddReturnArrayDocblockBasedOnArrayMapRector;
77
use Rector\TypeDeclaration\Rector\ClassMethod\AddReturnDocblockForScalarArrayFromAssignsRector;
8+
use Rector\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector;
89
use Rector\TypeDeclarationDocblocks\Rector\Class_\DocblockVarFromParamDocblockInConstructorRector;
910
use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\AddParamArrayDocblockFromDataProviderRector;
1011
use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\AddParamArrayDocblockFromDimFetchAccessRector;
@@ -24,5 +25,6 @@
2425
AddReturnDocblockForCommonObjectDenominatorRector::class,
2526
AddParamArrayDocblockFromDimFetchAccessRector::class,
2627
AddParamArrayDocblockFromDataProviderRector::class,
28+
ClassMethodArrayDocblockParamFromLocalCallsRector::class,
2729
]);
2830
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector;
6+
7+
use Iterator;
8+
use PHPUnit\Framework\Attributes\DataProvider;
9+
use Rector\Testing\PHPUnit\AbstractRectorTestCase;
10+
11+
final class ClassMethodArrayDocblockParamFromLocalCallsRectorTest extends AbstractRectorTestCase
12+
{
13+
#[DataProvider('provideData')]
14+
public function test(string $filePath): void
15+
{
16+
$this->doTestFile($filePath);
17+
}
18+
19+
public static function provideData(): Iterator
20+
{
21+
return self::yieldFilesFromDirectory(__DIR__ . '/Fixture');
22+
}
23+
24+
public function provideConfigFilePath(): string
25+
{
26+
return __DIR__ . '/config/configured_rule.php';
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
4+
5+
class HandleProtectedMethodInNonFinal
6+
{
7+
public function go()
8+
{
9+
$this->run(['item1', 'item2']);
10+
}
11+
12+
protected function run(array $items)
13+
{
14+
}
15+
}
16+
17+
?>
18+
-----
19+
<?php
20+
21+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
22+
23+
class HandleProtectedMethodInNonFinal
24+
{
25+
public function go()
26+
{
27+
$this->run(['item1', 'item2']);
28+
}
29+
30+
/**
31+
* @param string[] $items
32+
*/
33+
protected function run(array $items)
34+
{
35+
}
36+
}
37+
38+
?>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
4+
5+
use Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Source\SafeParentClass;
6+
7+
class HandleNonFinalProtectedWithParent extends SafeParentClass
8+
{
9+
public function go()
10+
{
11+
$this->run(['item1', 'item2']);
12+
}
13+
14+
protected function run(array $items)
15+
{
16+
}
17+
}
18+
19+
?>
20+
-----
21+
<?php
22+
23+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
24+
25+
use Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Source\SafeParentClass;
26+
27+
class HandleNonFinalProtectedWithParent extends SafeParentClass
28+
{
29+
public function go()
30+
{
31+
$this->run(['item1', 'item2']);
32+
}
33+
34+
/**
35+
* @param string[] $items
36+
*/
37+
protected function run(array $items)
38+
{
39+
}
40+
}
41+
42+
?>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
4+
5+
final class HandleProtectedMethodInFinal
6+
{
7+
public function go()
8+
{
9+
$this->run([2512, 3423]);
10+
11+
$this->run([324, 534]);
12+
}
13+
14+
protected function run(array $items)
15+
{
16+
}
17+
}
18+
19+
?>
20+
-----
21+
<?php
22+
23+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
24+
25+
final class HandleProtectedMethodInFinal
26+
{
27+
public function go()
28+
{
29+
$this->run([2512, 3423]);
30+
31+
$this->run([324, 534]);
32+
}
33+
34+
/**
35+
* @param int[] $items
36+
*/
37+
protected function run(array $items)
38+
{
39+
}
40+
}
41+
42+
?>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
4+
5+
final class HandlePublic
6+
{
7+
public function go()
8+
{
9+
$this->run([2512, 3423]);
10+
11+
$this->run([324, 534]);
12+
}
13+
14+
public function run(array $items)
15+
{
16+
}
17+
}
18+
19+
?>
20+
21+
-----
22+
<?php
23+
24+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
25+
26+
final class HandlePublic
27+
{
28+
public function go()
29+
{
30+
$this->run([2512, 3423]);
31+
32+
$this->run([324, 534]);
33+
}
34+
35+
/**
36+
* @param int[] $items
37+
*/
38+
public function run(array $items)
39+
{
40+
}
41+
}
42+
43+
?>
44+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
4+
5+
final class MultipleCalls
6+
{
7+
public function go()
8+
{
9+
$this->run(['item1', 'item2']);
10+
11+
$this->run(['item1', 'item2']);
12+
}
13+
14+
private function run(array $items)
15+
{
16+
}
17+
}
18+
19+
?>
20+
-----
21+
<?php
22+
23+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
24+
25+
final class MultipleCalls
26+
{
27+
public function go()
28+
{
29+
$this->run(['item1', 'item2']);
30+
31+
$this->run(['item1', 'item2']);
32+
}
33+
34+
/**
35+
* @param string[] $items
36+
*/
37+
private function run(array $items)
38+
{
39+
}
40+
}
41+
42+
?>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
4+
5+
class SomeClass
6+
{
7+
public function go()
8+
{
9+
$this->run(['item1', 'item2']);
10+
}
11+
12+
private function run(array $items)
13+
{
14+
}
15+
}
16+
17+
?>
18+
-----
19+
<?php
20+
21+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Fixture;
22+
23+
class SomeClass
24+
{
25+
public function go()
26+
{
27+
$this->run(['item1', 'item2']);
28+
}
29+
30+
/**
31+
* @param string[] $items
32+
*/
33+
private function run(array $items)
34+
{
35+
}
36+
}
37+
38+
?>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector\Source;
4+
5+
abstract class SafeParentClass
6+
{
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Rector\Config\RectorConfig;
6+
use Rector\TypeDeclarationDocblocks\Rector\Class_\ClassMethodArrayDocblockParamFromLocalCallsRector;
7+
8+
return static function (RectorConfig $rectorConfig): void {
9+
$rectorConfig->rule(ClassMethodArrayDocblockParamFromLocalCallsRector::class);
10+
};

0 commit comments

Comments
 (0)