@@ -56,6 +56,13 @@ public function doFoo($list): void
5656 } else {
5757 assertType ('non-empty-list<int> ' , $ list );
5858 }
59+
60+ if (count ($ list ) < 5 ) {
61+ assertType ('non-empty-list<int> ' , $ list );
62+ assertType ('int<1, 4> ' , count ($ list ));
63+ } else {
64+ assertType ('non-empty-list<int>&hasOffsetValue(1, int)&hasOffsetValue(2, int)&hasOffsetValue(3, int)&hasOffsetValue(4, int) ' , $ list );
65+ }
5966 }
6067
6168 /** @param list<int> $list */
@@ -74,6 +81,25 @@ public function doBar($list): void
7481 }
7582 }
7683
84+ /** @param non-empty-array<int> $nonEmptyArray */
85+ public function doNonEmptyArray ($ nonEmptyArray ): void
86+ {
87+ if (2 <= count ($ nonEmptyArray )) {
88+ assertType ('non-empty-array<int> ' , $ nonEmptyArray );
89+ assertType ('int<2, max> ' , count ($ nonEmptyArray ));
90+ } else {
91+ assertType ('non-empty-array<int> ' , $ nonEmptyArray );
92+ assertType ('1 ' , count ($ nonEmptyArray ));
93+ }
94+
95+ if (count ($ nonEmptyArray ) < 5 ) {
96+ assertType ('non-empty-array<int> ' , $ nonEmptyArray );
97+ assertType ('int<1, 4> ' , count ($ nonEmptyArray ));
98+ } else {
99+ assertType ('non-empty-array<int> ' , $ nonEmptyArray );
100+ }
101+ }
102+
77103 /**
78104 * @param list<int> $listA
79105 * @param non-empty-list<string> $listB
@@ -158,6 +184,13 @@ public function checkLimit($list): void
158184 /** @param array<int> $array */
159185 public function countArray ($ array ): void
160186 {
187+ if (count ($ array ) < 5 ) {
188+ assertType ('array<int> ' , $ array );
189+ assertType ('int<0, 4> ' , count ($ array ));
190+ } else {
191+ assertType ('non-empty-array<int> ' , $ array );
192+ }
193+
161194 if (count ($ array ) === 0 ) {
162195 return ;
163196 }
0 commit comments