44
55namespace Bug10345 ;
66
7+ use function PHPStan \Testing \assertType ;
8+
79$ container = new \stdClass ();
810$ container ->items = [];
911
1012$ func = function () use ($ container ): int {
11- foreach ($ container ->items as $ item ) {}
13+ assertType ('stdClass ' , $ container );
14+ assertType ('mixed ' , $ container ->items );
15+ foreach ($ container ->items as $ item ) {
16+ }
1217 return 1 ;
1318};
1419
@@ -25,6 +30,8 @@ class Foo {
2530$ container2 ->items = [];
2631
2732$ func2 = function () use ($ container2 ): int {
33+ assertType ('Bug10345\Foo ' , $ container2 );
34+ assertType ('list<string> ' , $ container2 ->items );
2835 foreach ($ container2 ->items as $ item ) {}
2936 return 1 ;
3037};
@@ -53,6 +60,8 @@ public function setItems(array $items): void
5360$ container3 = new Bar ();
5461if ($ container3 ->getItems () === []) {
5562 $ func3 = function () use ($ container3 ): int {
63+ assertType ('Bug10345\Bar ' , $ container3 );
64+ assertType ('list<string> ' , $ container3 ->getItems ());
5665 foreach ($ container3 ->getItems () as $ item ) {}
5766 return 1 ;
5867 };
@@ -67,6 +76,8 @@ public function setItems(array $items): void
6776$ container4 ->items = [];
6877
6978$ func4 = function () use ($ container4 ): int {
79+ assertType ('Bug10345\Foo ' , $ container4 );
80+ assertType ('list<string> ' , $ container4 ->items );
7081 foreach ($ container4 ?->items as $ item ) {}
7182 return 1 ;
7283};
0 commit comments