Skip to content

Commit 4110fdd

Browse files
committed
avoid type casting against stmts aware interface, as no node has it
1 parent c4700da commit 4110fdd

File tree

5 files changed

+48
-9
lines changed

5 files changed

+48
-9
lines changed

rules/DeadCode/Rector/For_/RemoveDeadIfForeachForRector.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,10 @@ public function refactor(Node $node): Node|null
113113
return null;
114114
}
115115

116-
private function processIf(If_ $if, int $key, StmtsAwareInterface $stmtsAware): void
116+
/**
117+
* @param StmtsAwareInterface $stmtsAware
118+
*/
119+
private function processIf(If_ $if, int $key, \PhpParser\Node $stmtsAware): void
117120
{
118121
if ($if->elseifs !== []) {
119122
return;
@@ -137,7 +140,10 @@ private function processIf(If_ $if, int $key, StmtsAwareInterface $stmtsAware):
137140
$this->hasChanged = true;
138141
}
139142

140-
private function processForForeach(For_|Foreach_ $for, int $key, StmtsAwareInterface $stmtsAware): void
143+
/**
144+
* @param StmtsAwareInterface $stmtsAware
145+
*/
146+
private function processForForeach(For_|Foreach_ $for, int $key, \PhpParser\Node $stmtsAware): void
141147
{
142148
if ($for instanceof For_) {
143149
$variables = $this->betterNodeFinder->findInstanceOf(

rules/DeadCode/Rector/If_/RemoveUnusedNonEmptyArrayBeforeForeachRector.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use Rector\Rector\AbstractRector;
2626
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
2727
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
28+
use Webmozart\Assert\Assert;
2829

2930
/**
3031
* @see \Rector\Tests\DeadCode\Rector\If_\RemoveUnusedNonEmptyArrayBeforeForeachRector\RemoveUnusedNonEmptyArrayBeforeForeachRectorTest
@@ -151,8 +152,13 @@ private function isUselessBooleanAnd(BooleanAnd $booleanAnd, Expr $foreachExpr):
151152
return $this->countManipulator->isCounterHigherThanOne($booleanAnd->right, $foreachExpr);
152153
}
153154

154-
private function refactorStmtsAware(StmtsAwareInterface $stmtsAware): ?StmtsAwareInterface
155+
/**
156+
* @param StmtsAwareInterface $stmtsAware
157+
*/
158+
private function refactorStmtsAware(\PhpParser\Node $stmtsAware): ?StmtsAwareInterface
155159
{
160+
Assert::propertyExists($stmtsAware, 'stmts');
161+
156162
if ($stmtsAware->stmts === null) {
157163
return null;
158164
}

rules/EarlyReturn/Rector/Return_/PreparedValueToEarlyReturnRector.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,11 @@ public function refactor(Node $node): ?StmtsAwareInterface
183183

184184
/**
185185
* @param If_[] $ifs
186+
* @param StmtsAwareInterface $stmtsAware
187+
*
186188
* @return BareSingleAssignIf[]
187189
*/
188-
private function getMatchingBareSingleAssignIfs(array $ifs, StmtsAwareInterface $stmtsAware): array
190+
private function getMatchingBareSingleAssignIfs(array $ifs, \PhpParser\Node $stmtsAware): array
189191
{
190192
$bareSingleAssignIfs = [];
191193
foreach ($ifs as $key => $if) {
@@ -233,7 +235,10 @@ private function isVariableSharedInAssignIfsAndReturn(
233235
return true;
234236
}
235237

236-
private function matchBareSingleAssignIf(Stmt $stmt, int $key, StmtsAwareInterface $stmtsAware): ?BareSingleAssignIf
238+
/**
239+
* @param StmtsAwareInterface $stmtsAware
240+
*/
241+
private function matchBareSingleAssignIf(Stmt $stmt, int $key, \PhpParser\Node $stmtsAware): ?BareSingleAssignIf
237242
{
238243
if (! $stmt instanceof If_) {
239244
return null;

rules/Php84/Rector/Foreach_/ForeachToArrayAllRector.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use Rector\VersionBonding\Contract\MinPhpVersionInterface;
2626
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
2727
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
28+
use Webmozart\Assert\Assert;
2829

2930
/**
3031
* @see \Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAllRector\ForeachToArrayAllRectorTest
@@ -102,8 +103,13 @@ public function provideMinPhpVersion(): int
102103
return PhpVersionFeature::ARRAY_ALL;
103104
}
104105

105-
private function refactorBooleanAssignmentPattern(StmtsAwareInterface $stmtsAware): ?Node
106+
/**
107+
* @param StmtsAwareInterface $stmtsAware
108+
*/
109+
private function refactorBooleanAssignmentPattern(\PhpParser\Node $stmtsAware): ?Node
106110
{
111+
Assert::propertyExists($stmtsAware, 'stmts');
112+
107113
foreach ($stmtsAware->stmts as $key => $stmt) {
108114
if (! $stmt instanceof Foreach_) {
109115
continue;
@@ -185,8 +191,13 @@ private function refactorBooleanAssignmentPattern(StmtsAwareInterface $stmtsAwar
185191
return null;
186192
}
187193

188-
private function refactorEarlyReturnPattern(StmtsAwareInterface $stmtsAware): ?Node
194+
/**
195+
* @param StmtsAwareInterface $stmtsAware
196+
*/
197+
private function refactorEarlyReturnPattern(\PhpParser\Node $stmtsAware): ?Node
189198
{
199+
Assert::propertyExists($stmtsAware, 'stmts');
200+
190201
foreach ($stmtsAware->stmts as $key => $stmt) {
191202
if (! $stmt instanceof Foreach_) {
192203
continue;

rules/Php84/Rector/Foreach_/ForeachToArrayAnyRector.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use Rector\VersionBonding\Contract\MinPhpVersionInterface;
2525
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
2626
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
27+
use Webmozart\Assert\Assert;
2728

2829
/**
2930
* @see \Rector\Tests\Php84\Rector\Foreach_\ForeachToArrayAnyRector\ForeachToArrayAnyRectorTest
@@ -101,8 +102,13 @@ public function provideMinPhpVersion(): int
101102
return PhpVersionFeature::ARRAY_ANY;
102103
}
103104

104-
private function refactorBooleanAssignmentPattern(StmtsAwareInterface $stmtsAware): ?Node
105+
/**
106+
* @param StmtsAwareInterface $stmtsAware
107+
*/
108+
private function refactorBooleanAssignmentPattern(\PhpParser\Node $stmtsAware): ?Node
105109
{
110+
Assert::propertyExists($stmtsAware, 'stmts');
111+
106112
foreach ($stmtsAware->stmts as $key => $stmt) {
107113
if (! $stmt instanceof Foreach_) {
108114
continue;
@@ -182,8 +188,13 @@ private function refactorBooleanAssignmentPattern(StmtsAwareInterface $stmtsAwar
182188
return null;
183189
}
184190

185-
private function refactorEarlyReturnPattern(StmtsAwareInterface $stmtsAware): ?Node
191+
/**
192+
* @param StmtsAwareInterface $stmtsAware
193+
*/
194+
private function refactorEarlyReturnPattern(\PhpParser\Node $stmtsAware): ?Node
186195
{
196+
Assert::propertyExists($stmtsAware, 'stmts');
197+
187198
foreach ($stmtsAware->stmts as $key => $stmt) {
188199
if (! $stmt instanceof Foreach_) {
189200
continue;

0 commit comments

Comments
 (0)