Skip to content

Commit a37dcf1

Browse files
authored
[Php84] Skip non-array on ForeachToArray* rules (#7023)
* [Php84] Skip non-array on ForeachToArray* rules * on other rules * update fixture * update fixture * update fixture
1 parent 3bc3c84 commit a37dcf1

23 files changed

Lines changed: 128 additions & 36 deletions

rules-tests/Php84/Rector/Foreach_/ForeachToArrayAllRector/Fixture/basic_usage.php.inc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAllRector\Fixture;
44

55
class BasicUsage
66
{
7-
public function checkAllAnimalsStartWithC($animals)
7+
public function checkAllAnimalsStartWithC(array $animals)
88
{
99
$found = true;
1010
foreach ($animals as $animal) {
@@ -16,7 +16,7 @@ class BasicUsage
1616
return $found;
1717
}
1818

19-
public function checkAllNumbersGreaterThanTen($numbers)
19+
public function checkAllNumbersGreaterThanTen(array $numbers)
2020
{
2121
$allGreater = true;
2222
foreach ($numbers as $number) {
@@ -28,7 +28,7 @@ class BasicUsage
2828
return $allGreater;
2929
}
3030

31-
public function checkAllItemsEqualTarget($items)
31+
public function checkAllItemsEqualTarget(array $items)
3232
{
3333
$allMatch = true;
3434
foreach ($items as $key => $value) {
@@ -49,19 +49,19 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAllRector\Fixture;
4949

5050
class BasicUsage
5151
{
52-
public function checkAllAnimalsStartWithC($animals)
52+
public function checkAllAnimalsStartWithC(array $animals)
5353
{
5454
$found = array_all($animals, fn($animal) => str_starts_with($animal, 'c'));
5555
return $found;
5656
}
5757

58-
public function checkAllNumbersGreaterThanTen($numbers)
58+
public function checkAllNumbersGreaterThanTen(array $numbers)
5959
{
6060
$allGreater = array_all($numbers, fn($number) => $number > 10);
6161
return $allGreater;
6262
}
6363

64-
public function checkAllItemsEqualTarget($items)
64+
public function checkAllItemsEqualTarget(array $items)
6565
{
6666
$allMatch = array_all($items, fn($value) => $value === 'target');
6767
return $allMatch;

rules-tests/Php84/Rector/Foreach_/ForeachToArrayAllRector/Fixture/skip_multiple_statements.php.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAllRector\Fixture;
44

55
class SkipMultipleStatements
66
{
7-
public function checkWithMultipleStatements($animals)
7+
public function checkWithMultipleStatements(array $animals)
88
{
99
$found = true;
1010
foreach ($animals as $animal) {

rules-tests/Php84/Rector/Foreach_/ForeachToArrayAllRector/Fixture/skip_no_boolean_initialization.php.inc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAllRector\Fixture;
44

55
class SkipNoBooleanInitialization
66
{
7-
public function checkWithoutBooleanInit($animals)
7+
public function checkWithoutBooleanInit(array $animals)
88
{
99
$found = 'initial';
1010
foreach ($animals as $animal) {
@@ -16,7 +16,7 @@ class SkipNoBooleanInitialization
1616
return $found;
1717
}
1818

19-
public function checkWithFalseInit($animals)
19+
public function checkWithFalseInit(array $animals)
2020
{
2121
$found = false;
2222
foreach ($animals as $animal) {

rules-tests/Php84/Rector/Foreach_/ForeachToArrayAllRector/Fixture/skip_no_break.php.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAllRector\Fixture;
44

55
class SkipNoBreak
66
{
7-
public function checkWithoutBreak($animals)
7+
public function checkWithoutBreak(array $animals)
88
{
99
$found = true;
1010
foreach ($animals as $animal) {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAllRector\Fixture;
4+
5+
class SkipNonArray
6+
{
7+
public function checkAllAnimalsStartWithC(\ArrayIterator $animals)
8+
{
9+
$found = true;
10+
foreach ($animals as $animal) {
11+
if (!str_starts_with($animal, 'c')) {
12+
$found = false;
13+
break;
14+
}
15+
}
16+
return $found;
17+
}
18+
}

rules-tests/Php84/Rector/Foreach_/ForeachToArrayAnyRector/Fixture/basic_usage.php.inc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAnyRector\Fixture;
44

55
class BasicUsage
66
{
7-
public function checkAnimal($animals)
7+
public function checkAnimal(array $animals)
88
{
99
$found = false;
1010
foreach ($animals as $animal) {
@@ -16,7 +16,7 @@ class BasicUsage
1616
return $found;
1717
}
1818

19-
public function checkNumber($numbers)
19+
public function checkNumber(array $numbers)
2020
{
2121
$exists = false;
2222
foreach ($numbers as $number) {
@@ -28,7 +28,7 @@ class BasicUsage
2828
return $exists;
2929
}
3030

31-
public function checkWithKey($items)
31+
public function checkWithKey(array $items)
3232
{
3333
$hasMatch = false;
3434
foreach ($items as $key => $value) {
@@ -49,19 +49,19 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAnyRector\Fixture;
4949

5050
class BasicUsage
5151
{
52-
public function checkAnimal($animals)
52+
public function checkAnimal(array $animals)
5353
{
5454
$found = array_any($animals, fn($animal) => str_starts_with($animal, 'c'));
5555
return $found;
5656
}
5757

58-
public function checkNumber($numbers)
58+
public function checkNumber(array $numbers)
5959
{
6060
$exists = array_any($numbers, fn($number) => $number > 10);
6161
return $exists;
6262
}
6363

64-
public function checkWithKey($items)
64+
public function checkWithKey(array $items)
6565
{
6666
$hasMatch = array_any($items, fn($value) => $value === 'target');
6767
return $hasMatch;

rules-tests/Php84/Rector/Foreach_/ForeachToArrayAnyRector/Fixture/skip_multiple_statements.php.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAnyRector\Fixture;
44

55
class SkipMultipleStatements
66
{
7-
public function run($animals)
7+
public function run(array $animals)
88
{
99
$found = false;
1010
foreach ($animals as $animal) {

rules-tests/Php84/Rector/Foreach_/ForeachToArrayAnyRector/Fixture/skip_no_boolean_initialization.php.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAnyRector\Fixture;
44

55
class SkipNoBooleanInitialization
66
{
7-
public function run($animals)
7+
public function run(array $animals)
88
{
99
$found = null;
1010
foreach ($animals as $animal) {

rules-tests/Php84/Rector/Foreach_/ForeachToArrayAnyRector/Fixture/skip_no_break.php.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAnyRector\Fixture;
44

55
class SkipNoBreak
66
{
7-
public function run($animals)
7+
public function run(array $animals)
88
{
99
$found = false;
1010
foreach ($animals as $animal) {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
namespace Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAnyRector\Fixture;
4+
5+
class SkipNonArray
6+
{
7+
public function checkAnimal(\ArrayIterator $animals)
8+
{
9+
$found = false;
10+
foreach ($animals as $animal) {
11+
if (str_starts_with($animal, 'c')) {
12+
$found = true;
13+
break;
14+
}
15+
}
16+
return $found;
17+
}
18+
}

0 commit comments

Comments
 (0)