@@ -8,10 +8,25 @@ class HelloWorld
88{
99 public function doFoo ()
1010 {
11- assertType ('list<string>|false ' , preg_split ('/-/ ' , '1-2-3 ' ));
12- assertType ('list<string>|false ' , preg_split ('/-/ ' , '1-2-3 ' , -1 , PREG_SPLIT_NO_EMPTY ));
13- assertType ('list<array{string, int<0, max>}>|false ' , preg_split ('/-/ ' , '1-2-3 ' , -1 , PREG_SPLIT_OFFSET_CAPTURE ));
14- assertType ('list<array{string, int<0, max>}>|false ' , preg_split ('/-/ ' , '1-2-3 ' , -1 , PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE ));
11+ $ aaa = '/[0-9a] ' ;
12+ assertType ('*ERROR* ' , preg_split ($ aaa , '1-2-3 ' ));
13+ assertType ("array{'1', '2', '3'} " , preg_split ('/-/ ' , '1-2-3 ' ));
14+ assertType ("array{'1', '2', '3'} " , preg_split ('/-/ ' , '1-2-3 ' , -1 , PREG_SPLIT_NO_EMPTY ));
15+ assertType ("array{'1', '3'} " , preg_split ('/-/ ' , '1--3 ' , -1 , PREG_SPLIT_NO_EMPTY ));
16+ assertType ("array{array{'1', 0}, array{'2', 2}, array{'3', 4}} " , preg_split ('/-/ ' , '1-2-3 ' , -1 , PREG_SPLIT_OFFSET_CAPTURE ));
17+ assertType ("array{array{'1', 0}, array{'2', 2}, array{'3', 4}} " , preg_split ('/-/ ' , '1-2-3 ' , -1 , PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE ));
18+ assertType ("array{array{'1', 0}, array{'', 2}, array{'3', 3}} " , preg_split ('/-/ ' , '1--3 ' , -1 , PREG_SPLIT_OFFSET_CAPTURE ));
19+ assertType ("array{array{'1', 0}, array{'3', 3}} " , preg_split ('/-/ ' , '1--3 ' , -1 , PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE ));
20+ }
21+
22+ public function doWithVariables (string $ pattern , string $ subject , int $ offset , int $ flags ): void
23+ {
24+ assertType ('(list<string>|false) ' , preg_split ($ pattern , $ subject , $ offset , $ flags ));
25+ assertType ('(list<string>|false) ' , preg_split ("// " , $ subject , $ offset , $ flags ));
26+ assertType ('(list<string>|false) ' , preg_split ($ pattern , "1-2-3 " , $ offset , $ flags ));
27+ assertType ('(list<string>|false) ' , preg_split ($ pattern , $ subject , -1 , $ flags ));
28+ assertType ('(list<string>|false) ' , preg_split ($ pattern , $ subject , $ offset , PREG_SPLIT_NO_EMPTY ));
29+ assertType ('list<array{string, int<0, max>}> ' , preg_split ($ pattern , $ subject , $ offset , PREG_SPLIT_OFFSET_CAPTURE ));
1530 }
1631
1732 /**
@@ -24,10 +39,10 @@ public function doFoo()
2439 */
2540 public static function splitWithOffset ($ pattern , $ subject , $ limit = -1 , $ flags = 0 )
2641 {
27- assertType ('list<array{string, int<0, max>}>|false ' , preg_split ($ pattern , $ subject , $ limit , $ flags | PREG_SPLIT_OFFSET_CAPTURE ));
28- assertType ('list<array{string, int<0, max>}>|false ' , preg_split ($ pattern , $ subject , $ limit , PREG_SPLIT_OFFSET_CAPTURE | $ flags ));
42+ assertType ('list<array{string, int<0, max>}> ' , preg_split ($ pattern , $ subject , $ limit , $ flags | PREG_SPLIT_OFFSET_CAPTURE ));
43+ assertType ('list<array{string, int<0, max>}> ' , preg_split ($ pattern , $ subject , $ limit , PREG_SPLIT_OFFSET_CAPTURE | $ flags ));
2944
30- assertType ('list<array{string, int<0, max>}>|false ' , preg_split ($ pattern , $ subject , $ limit , PREG_SPLIT_OFFSET_CAPTURE | $ flags | PREG_SPLIT_NO_EMPTY ));
45+ assertType ('list<array{string, int<0, max>}> ' , preg_split ($ pattern , $ subject , $ limit , PREG_SPLIT_OFFSET_CAPTURE | $ flags | PREG_SPLIT_NO_EMPTY ));
3146 }
3247
3348 /**
0 commit comments