Skip to content

Commit 2610337

Browse files
Add assertions
1 parent 12b94b6 commit 2610337

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

tests/PHPStan/Analyser/NodeScopeResolverTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ private static function findTestFiles(): iterable
262262
yield __DIR__ . '/../Rules/Properties/data/bug-14012.php';
263263
yield __DIR__ . '/../Rules/Variables/data/bug-14124.php';
264264
yield __DIR__ . '/../Rules/Variables/data/bug-14124b.php';
265+
yield __DIR__ . '/../Rules/Arrays/data/bug-10345.php';
265266
yield __DIR__ . '/../Rules/Arrays/data/bug-14308.php';
266267
}
267268

tests/PHPStan/Rules/Arrays/data/bug-10345.php

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,18 @@
44

55
namespace Bug10345;
66

7+
use function PHPStan\Testing\assertType;
8+
79
$container = new \stdClass();
810
$container->items = [];
911

12+
assertType('stdClass', $container);
13+
assertType('array{}', $container->items);
1014
$func = function() use ($container): int {
11-
foreach ($container->items as $item) {}
15+
assertType('stdClass', $container);
16+
assertType('mixed', $container->items);
17+
foreach ($container->items as $item) {
18+
}
1219
return 1;
1320
};
1421

@@ -24,7 +31,11 @@ class Foo {
2431
$container2 = new Foo();
2532
$container2->items = [];
2633

34+
assertType('Bug10345\Foo', $container2);
35+
assertType('array{}', $container2->items);
2736
$func2 = function() use ($container2): int {
37+
assertType('Bug10345\Foo', $container2);
38+
assertType('list<string>', $container2->items);
2839
foreach ($container2->items as $item) {}
2940
return 1;
3041
};
@@ -52,7 +63,11 @@ public function setItems(array $items): void
5263

5364
$container3 = new Bar();
5465
if ($container3->getItems() === []) {
66+
assertType('Bug10345\Bar', $container3);
67+
assertType('array{}', $container3->getItems());
5568
$func3 = function() use ($container3): int {
69+
assertType('Bug10345\Bar', $container3);
70+
assertType('list<string>', $container3->getItems());
5671
foreach ($container3->getItems() as $item) {}
5772
return 1;
5873
};
@@ -66,7 +81,11 @@ public function setItems(array $items): void
6681
$container4 = new Foo();
6782
$container4->items = [];
6883

84+
assertType('Bug10345\Foo', $container4);
85+
assertType('array{}', $container4->items);
6986
$func4 = function() use ($container4): int {
87+
assertType('Bug10345\Foo', $container4);
88+
assertType('list<string>', $container4->items);
7089
foreach ($container4?->items as $item) {}
7190
return 1;
7291
};
@@ -95,7 +114,9 @@ public static function setItems(array $items): void
95114

96115
Baz::$items = [];
97116

117+
assertType('array{}', Baz::$items);
98118
$func5 = function(): int {
119+
assertType('list<string>', Baz::$items);
99120
foreach (Baz::$items as $item) {}
100121
return 1;
101122
};
@@ -107,7 +128,9 @@ public static function setItems(array $items): void
107128
// Static method call
108129
Baz::setItems([]);
109130
if (Baz::getItems() === []) {
131+
assertType('array{}', Baz::getItems());
110132
$func6 = function(): int {
133+
assertType('list<string>', Baz::getItems());
111134
foreach (Baz::getItems() as $item) {}
112135
return 1;
113136
};

0 commit comments

Comments
 (0)