@@ -22,15 +22,42 @@ public function sayHello(array $list): array
22
22
23
23
/**
24
24
* @param list<array<string, string>> $list
25
- * @return list<array<string>>
26
25
*/
27
- public function sayFoo (array $ list ): array
26
+ public function sayFoo (array $ list ): void
28
27
{
29
28
foreach ($ list as $ k => $ v ) {
30
29
unset($ list [$ k ]['abc ' ]);
31
30
assertType ('non-empty-list<array<string, string>> ' , $ list );
32
31
assertType ('array<string, string> ' , $ list [$ k ]);
33
32
}
34
- return $ list ;
33
+ assertType ('list<array<string, string>> ' , $ list );
34
+ }
35
+
36
+ /**
37
+ * @param list<array<string, string>> $list
38
+ */
39
+ public function sayFoo2 (array $ list ): void
40
+ {
41
+ foreach ($ list as $ k => $ v ) {
42
+ $ list [$ k ]['abc ' ] = 'world ' ;
43
+ assertType ("non-empty-list<non-empty-array<string, string>&hasOffsetValue('abc', 'world')> " , $ list );
44
+ assertType ("non-empty-array<string, string>&hasOffsetValue('abc', 'world') " , $ list [$ k ]);
45
+ }
46
+ assertType ("list<non-empty-array<string, string>&hasOffsetValue('abc', 'world')> " , $ list );
47
+ }
48
+
49
+ /**
50
+ * @param list<array<string, string>> $list
51
+ */
52
+ public function sayFooBar (array $ list ): void
53
+ {
54
+ foreach ($ list as $ k => $ v ) {
55
+ if (rand (0 ,1 )) {
56
+ unset($ list [$ k ]);
57
+ }
58
+ assertType ('array<int<0, max>, array<string, string>> ' , $ list );
59
+ assertType ('array<string, string> ' , $ list [$ k ]);
60
+ }
61
+ assertType ('array<string, string> ' , $ list [$ k ]);
35
62
}
36
63
}
0 commit comments