Skip to content

Commit 99dc217

Browse files
committed
add tests
1 parent d58b3da commit 99dc217

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

tests/PHPStan/Analyser/nsrt/bug-13747.php

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

Comments
 (0)