Skip to content

Commit ca44a91

Browse files
committed
feat add test for varibles
1 parent 6f8c0c0 commit ca44a91

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

tests/PHPStan/Analyser/nsrt/preg_split.php

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)