@@ -36,6 +36,22 @@ public function normalArrays(array $arr): void
36
36
/** @var array<string, int> $arr */
37
37
assertType ('array<string, int> ' , array_slice ($ arr , 1 , 2 ));
38
38
assertType ('array<string, int> ' , array_slice ($ arr , 1 , 2 , true ));
39
+
40
+ /** @var non-empty-array<string> $arr */
41
+ assertType ('array{} ' , array_slice ($ arr , 0 , 0 ));
42
+ assertType ('array{} ' , array_slice ($ arr , 0 , 0 , true ));
43
+
44
+ /** @var non-empty-array<string> $arr */
45
+ assertType ('array<string> ' , array_slice ($ arr , 0 , 1 ));
46
+ assertType ('array<string> ' , array_slice ($ arr , 0 , 1 , true ));
47
+
48
+ /** @var list<string> $arr */
49
+ assertType ('list<string> ' , array_slice ($ arr , 0 , 1 ));
50
+ assertType ('list<string> ' , array_slice ($ arr , 0 , 1 , true ));
51
+
52
+ /** @var non-empty-list<string> $arr */
53
+ assertType ('non-empty-list<string> ' , array_slice ($ arr , 0 , 1 ));
54
+ assertType ('non-empty-list<string> ' , array_slice ($ arr , 0 , 1 , true ));
39
55
}
40
56
41
57
public function constantArrays (array $ arr ): void
@@ -48,6 +64,14 @@ public function constantArrays(array $arr): void
48
64
/** @var array{17: 'foo', 19: 'bar', 21: 'baz'}|array{foo: 17, bar: 19, baz: 21} $arr */
49
65
assertType ('array{ \'bar \', \'baz \'}|array{bar: 19, baz: 21} ' , array_slice ($ arr , 1 , 2 ));
50
66
assertType ('array{19: \'bar \', 21: \'baz \'}|array{bar: 19, baz: 21} ' , array_slice ($ arr , 1 , 2 , true ));
67
+
68
+ /** @var array{17: 'foo', b: 'bar', 19: 'baz'} $arr */
69
+ assertType ('array{} ' , array_slice ($ arr , -1 , -1 ));
70
+ assertType ('array{} ' , array_slice ($ arr , -1 , -1 , true ));
71
+
72
+ /** @var array{17: 'foo', b: 'bar', 19: 'baz'} $arr */
73
+ assertType ('array{} ' , array_slice ($ arr , -1 , -2 ));
74
+ assertType ('array{} ' , array_slice ($ arr , -1 , -2 , true ));
51
75
}
52
76
53
77
public function constantArraysWithOptionalKeys (array $ arr ): void
0 commit comments