Skip to content

Commit

Permalink
add some more stubs for array functions (#4271)
Browse files Browse the repository at this point in the history
* add some more stubs for array functions

* add function brackets to stubs

* add parameter names

* remove redundant brackets

* remove stubs already defined in return type providers
  • Loading branch information
marcosh authored and muglug committed Oct 7, 2020
1 parent 57397c9 commit 7838087
Showing 1 changed file with 91 additions and 0 deletions.
91 changes: 91 additions & 0 deletions src/Psalm/Internal/Stubs/CoreGenericFunctions.phpstub
Expand Up @@ -49,6 +49,25 @@ function array_intersect_key(array $arr, array $arr2, array ...$arr3)
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
* @param array ...$arr3
* @param callable(TKey): int $keyCompareFunc
*
* @return array<TKey, TValue>
*
* @psalm-pure
*/
function array_intersect_ukey(array $arr, array $arr2, array ...$arr3, callable $keyCompareFunc): array
{
}

/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
* @param array ...$arr3
*
* @return array<TKey, TValue>
* @psalm-pure
Expand All @@ -57,6 +76,23 @@ function array_intersect_assoc(array $arr, array $arr2, array ...$arr3)
{
}

/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
* @param array ...$arr3
* @param callable(TKey): int $keyCompareFunc
*
* @return array<TKey, TValue>
*
* @psalm-pure
*/
function array_intersect_uassoc(array $arr, array $arr2, array ...$arr3, callable $keyCompareFunc): array {}
{
}

/**
* @psalm-template TKey as array-key
* @psalm-template TValue
Expand Down Expand Up @@ -102,6 +138,22 @@ function array_diff_key(array $arr, array $arr2, array ...$arr3)
{
}

/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
* @param array ...$arr3
* @param callable(TKey, TKey): int $keyCompareFunc
*
* @return array<TKey, TValue>
* @psalm-pure
*/
function array_diff_ukey(array $arr, array $arr2, array ...$arr3, callable $keyCompareFunc): array {}
{
}

/**
* @psalm-template TKey as array-key
* @psalm-template TValue
Expand All @@ -117,6 +169,20 @@ function array_diff_assoc(array $arr, array $arr2, array ...$arr3)
{
}

/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
* @param array ...$arr3
* @param callable(TKey, TKey): int $keyCompareFunc
*
* @return array<TKey, TValue>
* @psalm-pure
*/
function array_diff_uassoc(array $arr, array $arr2, array ... $arr3, callable $keyCompareFunc): array {}

/**
* @psalm-template TKey as array-key
* @psalm-template TValue
Expand Down Expand Up @@ -550,6 +616,20 @@ function explode(string $delimiter, string $string, int $limit = -1) : array {}
*/
function array_sum(array $input) {}

/**
* @param array $input
*
* @return (
* $input is array<int>
* ? int
* : ($input is array<float>
* ? float
* : float|int
* )
* )
*/
function array_product(array $input) {}

/**
* @psalm-pure
*
Expand Down Expand Up @@ -736,3 +816,14 @@ function str_getcsv(string $input, string $delimiter = ',', string $enclosure =
* @return ($min is positive-int ? positive-int : int)
*/
function random_int(int $min, int $max): int {}

/**
* @template TKey as array-key
*
* @param array<mixed, TKey> $array
*
* @return array<TKey, positive-int>
*
* @psalm-pure
*/
function array_count_values(array $array): array {}

0 comments on commit 7838087

Please sign in to comment.