Skip to content

Commit

Permalink
Fix array_unique callmap
Browse files Browse the repository at this point in the history
  • Loading branch information
othercorey committed Feb 17, 2023
1 parent 0a8d686 commit 998a588
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
4 changes: 1 addition & 3 deletions dictionaries/CallMap.php
Original file line number Diff line number Diff line change
Expand Up @@ -418,9 +418,7 @@
'array_uintersect_assoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable', '...rest='=>'array|callable(mixed,mixed):int'],
'array_uintersect_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_compare_func'=>'callable(mixed,mixed):int', 'key_compare_func'=>'callable(mixed,mixed):int'],
'array_uintersect_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', 'arg5'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'],
'array_unique' => ['array', 'array'=>'array', 'flags='=>'0'],
'array_unique\'1' => ['array<int|float|string|null>', 'array'=>'array<int|float|string|null>', 'flags='=>'1'],
'array_unique\'2' => ['array<int|float|string|bool|\Stringable|null>', 'array'=>'array<int|float|string|bool|\Stringable|null>', 'flags='=>'2|5'],
'array_unique' => ['array<\Stringable|string|int|float|bool|null>', 'array'=>'array<\Stringable|string|int|float|bool|null>', 'flags='=>'int'],
'array_unshift' => ['int', '&rw_array'=>'array', '...values='=>'mixed'],
'array_values' => ['list<mixed>', 'array'=>'array'],
'array_walk' => ['bool', '&rw_array'=>'array', 'callback'=>'callable', 'arg='=>'mixed'],
Expand Down
4 changes: 1 addition & 3 deletions dictionaries/CallMap_historical.php
Original file line number Diff line number Diff line change
Expand Up @@ -9408,9 +9408,7 @@
'array_uintersect_assoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable', '...rest='=>'array|callable(mixed,mixed):int'],
'array_uintersect_uassoc' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'data_compare_func'=>'callable(mixed,mixed):int', 'key_compare_func'=>'callable(mixed,mixed):int'],
'array_uintersect_uassoc\'1' => ['associative-array', 'array'=>'array', 'rest'=>'array', 'arr3'=>'array', 'arg4'=>'array|callable(mixed,mixed):int', 'arg5'=>'array|callable(mixed,mixed):int', '...rest='=>'array|callable(mixed,mixed):int'],
'array_unique' => ['array', 'array'=>'array', 'flags='=>'0'],
'array_unique\'1' => ['array<int|float|string|null>', 'array'=>'array<int|float|string|null>', 'flags='=>'1'],
'array_unique\'2' => ['array<int|float|string|bool|\Stringable|null>', 'array'=>'array<int|float|string|bool|\Stringable|null>', 'flags='=>'2|5'],
'array_unique' => ['array<\Stringable|string|int|float|bool|null>', 'array'=>'array<\Stringable|string|int|float|bool|null>', 'flags='=>'int'],
'array_unshift' => ['int', '&rw_array'=>'array', '...values'=>'mixed'],
'array_values' => ['list<mixed>', 'array'=>'array'],
'array_walk' => ['bool', '&rw_array'=>'array', 'callback'=>'callable', 'arg='=>'mixed'],
Expand Down
22 changes: 22 additions & 0 deletions tests/ArrayFunctionCallTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2536,6 +2536,22 @@ function consumeArray(array $_input): void {}
consumeArray([makeKey() => null]);
',
],
'arrayUniqueStringableElements' => [
'code' => '<?php
class IsStringable implements Stringable {
public function __toString(): string {
return "test";
}
}
array_unique([new IsStringable(), 1]);
',
],
'arrayUniqueZeroElements' => [
'code' => '<?php
array_unique([]);
',
],
];
}

Expand Down Expand Up @@ -2809,6 +2825,12 @@ function merger(array $a, array $b) : array {
',
'error_message' => 'NamedArgumentNotAllowed',
],
'arrayUniqueNonStringableElements' => [
'code' => '<?php
array_unique([(object)[], (object)[]]);
',
'error_message' => 'ArgumentTypeCoercion',
],
];
}
}

0 comments on commit 998a588

Please sign in to comment.