@@ -202,13 +202,14 @@ public function supportsPhpdocIntegerRange() {
202202 * @param positive-int $pi
203203 * @param int<1, 10> $r1
204204 * @param int<5, 10> $r2
205+ * @param int<-9, 100> $r3
205206 * @param int<min, 5> $rMin
206207 * @param int<5, max> $rMax
207208 *
208209 * @param 20|40|60 $x
209210 * @param 2|4 $y
210211 */
211- public function math ($ i , $ j , $ z , $ pi , $ r1 , $ r2 , $ rMin , $ rMax , $ x , $ y ) {
212+ public function math ($ i , $ j , $ z , $ pi , $ r1 , $ r2 , $ r3 , $ rMin , $ rMax , $ x , $ y ) {
212213 assertType ('int ' , $ r1 + $ i );
213214 assertType ('int ' , $ r1 - $ i );
214215 assertType ('int ' , $ r1 * $ i );
@@ -254,16 +255,18 @@ public function math($i, $j, $z, $pi, $r1, $r2, $rMin, $rMax, $x, $y) {
254255 assertType ('float|int<1, max> ' , $ rMax / 4 );
255256
256257 assertType ('int<6, 20> ' , $ r1 + $ r2 );
257- assertType ('int<-4, 0 > ' , $ r1 - $ r2 );
258+ assertType ('int<-9, 5 > ' , $ r1 - $ r2 );
258259 assertType ('int<5, 100> ' , $ r1 * $ r2 );
259260 assertType ('float|int<0, 1> ' , $ r1 / $ r2 );
260261
262+ assertType ('int<-99, 19> ' , $ r1 - $ r3 );
263+
261264 assertType ('int<min, 15> ' , $ r1 + $ rMin );
262- assertType ('int<min, 5 > ' , $ r1 - $ rMin );
265+ assertType ('int<-4, max > ' , $ r1 - $ rMin );
263266 assertType ('int<min, 50> ' , $ r1 * $ rMin );
264267 assertType ('float|int<min, 2> ' , $ r1 / $ rMin );
265268 assertType ('int<min, 15> ' , $ rMin + $ r1 );
266- assertType ('int<min, -5 > ' , $ rMin - $ r1 );
269+ assertType ('int<min, 4 > ' , $ rMin - $ r1 );
267270 assertType ('int<min, 50> ' , $ rMin * $ r1 );
268271 assertType ('float|int<min, 0> ' , $ rMin / $ r1 );
269272
@@ -272,7 +275,7 @@ public function math($i, $j, $z, $pi, $r1, $r2, $rMin, $rMax, $x, $y) {
272275 assertType ('int<5, max> ' , $ r1 * $ rMax );
273276 assertType ('float|int<0, max> ' , $ r1 / $ rMax );
274277 assertType ('int<6, max> ' , $ rMax + $ r1 );
275- assertType ('int<4 , max> ' , $ rMax - $ r1 );
278+ assertType ('int<-5 , max> ' , $ rMax - $ r1 );
276279 assertType ('int<5, max> ' , $ rMax * $ r1 );
277280 assertType ('float|int<5, max> ' , $ rMax / $ r1 );
278281
0 commit comments