Skip to content

Commit d6c11be

Browse files
committed
apply static data only special case also for "yield from"
1 parent c689efe commit d6c11be

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/Rules/PHPUnit/DataProviderDataRule.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,10 @@ private function buildArrayTypesFromNode(Node $node, Scope $scope): array
173173
$arraysTypes = [];
174174

175175
// special case for providers only containing static data, so we get more precise error lines
176-
if ($node instanceof Node\Stmt\Return_ && $node->expr instanceof Node\Expr\Array_) {
176+
if (
177+
($node instanceof Node\Stmt\Return_ && $node->expr instanceof Node\Expr\Array_)
178+
|| ($node instanceof Node\Expr\YieldFrom && $node->expr instanceof Node\Expr\Array_)
179+
) {
177180
foreach ($node->expr->items as $item) {
178181
if (!$item->value instanceof Node\Expr\Array_) {
179182
$arraysTypes = [];

tests/Rules/PHPUnit/DataProviderDataRuleTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,27 +73,27 @@ public function testRule(): void
7373
],
7474
[
7575
'Parameter #2 $input of method DataProviderDataTest\YieldFromTest::myTestMethod() expects string, int given.',
76-
107,
76+
112,
7777
],
7878
[
7979
'Parameter #2 $input of method DataProviderDataTest\YieldFromTest::myTestMethod() expects string, false given.',
80-
107,
80+
116,
8181
],
8282
[
8383
'Method DataProviderDataTest\DifferentArgumentCount::testFoo() invoked with 3 parameters, 2 required.',
84-
136,
84+
141,
8585
],
8686
[
8787
'Method DataProviderDataTest\DifferentArgumentCount::testFoo() invoked with 1 parameter, 2 required.',
88-
136,
88+
146,
8989
],
9090
[
9191
'Method DataProviderDataTest\DifferentArgumentCountWithReusedDataprovider::testFoo() invoked with 3 parameters, 2 required.',
92-
172,
92+
177,
9393
],
9494
[
9595
'Method DataProviderDataTest\DifferentArgumentCountWithReusedDataprovider::testFoo() invoked with 1 parameter, 2 required.',
96-
172,
96+
182,
9797
],
9898
[
9999
'Parameter #2 $input of method DataProviderDataTest\UnionTypeReturnTest::testFoo() expects string, int given.',

0 commit comments

Comments
 (0)