Skip to content

Commit 5215e5e

Browse files
committed
test different context variants
1 parent d8ba4ad commit 5215e5e

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

tests/PHPStan/Analyser/nsrt/bug-13301-php8.php

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,38 @@ function doFoo($mixed) {
1515
assertType('array', $mixed);
1616
}
1717

18+
function doFooTrue($mixed) {
19+
if (array_key_exists('a', $mixed) === true) {
20+
assertType("non-empty-array&hasOffset('a')", $mixed);
21+
} else {
22+
assertType('array', $mixed); // could be array~hasOffset('a') after arrays got subtractable
23+
}
24+
assertType('array', $mixed);
25+
}
26+
27+
function doFooTruethy($mixed) {
28+
if (array_key_exists('a', $mixed) == true) {
29+
assertType("non-empty-array&hasOffset('a')", $mixed);
30+
} else {
31+
assertType('array', $mixed); // could be array~hasOffset('a') after arrays got subtractable
32+
}
33+
assertType('array', $mixed);
34+
}
35+
36+
function doFooFalsey($mixed) {
37+
if (array_key_exists('a', $mixed) == 0) {
38+
assertType("array", $mixed);
39+
} else {
40+
assertType("non-empty-array&hasOffset('a')", $mixed); // could be array~hasOffset('a') after arrays got subtractable
41+
}
42+
assertType('array', $mixed);
43+
}
44+
1845
function doArray(array $arr) {
1946
if (array_key_exists('a', $arr)) {
2047
assertType("non-empty-array&hasOffset('a')", $arr);
21-
echo "has-a";
2248
} else {
2349
assertType('array', $arr);
24-
echo "NO-a";
2550
}
2651
assertType('array', $arr);
2752
}

0 commit comments

Comments
 (0)