1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-26 20:34:47 +01:00
psalm/src/Psalm/Internal/Stubs/CoreGenericFunctions.phpstub

408 lines
7.2 KiB
Plaintext
Raw Normal View History

<?php
/**
* @psalm-template T as array-key
* @psalm-template A as non-empty-array<T, mixed>|array<T, mixed>
*
* @param A $arr
* @param mixed $search_value
* @param bool $strict
2019-07-05 22:24:00 +02:00
*
* @return (A is non-empty-array ? non-empty-list<T> : list<T>)
* @psalm-pure
*/
2019-07-05 22:24:00 +02:00
function array_keys(array $arr, $search_value = null, bool $strict = false)
{
}
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
2019-10-06 21:28:41 +02:00
* @param array ...$arr3
2019-07-05 22:24:00 +02:00
*
* @return array<TKey, TValue>
* @psalm-pure
*/
2019-10-06 21:28:41 +02:00
function array_intersect(array $arr, array $arr2, array ...$arr3)
2019-07-05 22:24:00 +02:00
{
}
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
2019-10-06 21:28:41 +02:00
* @param array ...$arr3
2019-07-05 22:24:00 +02:00
*
* @return array<TKey, TValue>
* @psalm-pure
*/
2019-10-06 21:28:41 +02:00
function array_intersect_key(array $arr, array $arr2, array ...$arr3)
2019-07-05 22:24:00 +02:00
{
}
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
*
* @return array<TKey, TValue>
* @psalm-pure
*/
function array_intersect_assoc(array $arr, array $arr2, array ...$arr3)
{
}
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<mixed, TKey> $arr
* @param array<mixed, TValue> $arr2
2019-07-05 22:24:00 +02:00
*
* @return array<TKey, TValue>|false
* @psalm-ignore-falsable-return
* @psalm-pure
*/
2019-07-05 22:24:00 +02:00
function array_combine(array $arr, array $arr2)
{
}
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
2019-10-06 21:28:41 +02:00
* @param array ...$arr3
2019-07-05 22:24:00 +02:00
*
* @return array<TKey, TValue>
* @psalm-pure
*/
2019-10-06 21:28:41 +02:00
function array_diff(array $arr, array $arr2, array ...$arr3)
2019-07-05 22:24:00 +02:00
{
}
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array $arr2
2019-10-06 21:28:41 +02:00
* @param array ...$arr3
2019-07-05 22:24:00 +02:00
*
* @return array<TKey, TValue>
* @psalm-pure
*/
2019-10-06 21:28:41 +02:00
function array_diff_key(array $arr, array $arr2, array ...$arr3)
2019-07-05 22:24:00 +02:00
{
}
/**
* @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
*/
function array_diff_assoc(array $arr, array $arr2, array ...$arr3)
{
}
2018-02-22 00:59:31 +01:00
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
2018-02-22 00:59:31 +01:00
*
* @param array<TKey, TValue> $arr
2019-07-05 22:24:00 +02:00
*
2018-02-22 00:59:31 +01:00
* @return array<TValue, TKey>
* @psalm-pure
2018-02-22 00:59:31 +01:00
*/
2019-07-05 22:24:00 +02:00
function array_flip(array $arr)
{
}
2018-02-22 00:59:31 +01:00
2018-04-05 06:21:14 +02:00
/**
* @psalm-template TKey as array-key
2018-04-05 06:21:14 +02:00
*
* @param array<TKey, mixed> $arr
2019-07-05 22:24:00 +02:00
*
* @return TKey|null
* @psalm-ignore-nullable-return
* @psalm-pure
2018-04-05 06:21:14 +02:00
*/
2019-07-05 22:24:00 +02:00
function key($arr)
{
}
2018-04-05 06:21:14 +02:00
/**
* @psalm-template TKey as array-key
*
* @param array<TKey, mixed> $arr
*
* @return TKey|null
* @psalm-ignore-nullable-return
* @psalm-pure
*/
function array_key_first($arr)
{
}
/**
* @psalm-template TKey as array-key
*
* @param array<TKey, mixed> $arr
*
* @return TKey|null
* @psalm-ignore-nullable-return
* @psalm-pure
*/
function array_key_last($arr)
{
}
/**
* @psalm-template T
*
* @param mixed $needle
* @param array<T, mixed> $haystack
* @param bool $strict
2019-07-05 22:24:00 +02:00
*
* @return T|false
* @psalm-pure
*/
2019-07-05 22:24:00 +02:00
function array_search($needle, array $haystack, bool $strict = false)
{
}
2019-01-20 00:11:39 +01:00
2020-01-01 21:07:34 +01:00
/**
* @psalm-template T
2020-01-01 21:07:34 +01:00
*
* @param T[] $arr
2020-01-01 21:07:34 +01:00
* @param-out list<T> $arr
*/
function shuffle(array &$arr): bool
2020-01-01 21:07:34 +01:00
{
}
2019-01-20 00:11:39 +01:00
/**
* @psalm-template T
2019-07-05 22:24:00 +02:00
*
* @param T[] $arr
* @param-out list<T> $arr
*/
function sort(array &$arr, int $sort_flags = SORT_REGULAR): bool
{
}
/**
* @psalm-template T
*
* @param T[] $arr
* @param-out list<T> $arr
*/
function rsort(array &$arr, int $sort_flags = SORT_REGULAR): bool
{
}
/**
* @psalm-template T
*
* @param T[] $arr
2019-01-20 00:11:39 +01:00
* @param callable(T,T):int $callback
* @param-out list<T> $arr
2019-01-20 00:11:39 +01:00
*/
2019-07-05 22:24:00 +02:00
function usort(array &$arr, callable $callback): bool
{
}
2019-01-20 00:11:39 +01:00
2019-12-09 03:30:19 +01:00
/**
* @psalm-template TKey
* @psalm-template T
2019-12-09 03:30:19 +01:00
*
* @param array<TKey,T> $arr
* @param callable(T,T):int $callback
* @param-out array<TKey,T> $arr
*/
function uasort(array &$arr, callable $callback): bool
{
}
/**
* @psalm-template TKey
* @psalm-template T
*
* @param array<TKey,T> $arr
* @param callable(TKey,TKey):int $callback
* @param-out array<TKey,T> $arr
*/
function uksort(array &$arr, callable $callback): bool
{
}
/**
* @psalm-template T
*
* @param array<string, T> $arr
2019-07-05 22:24:00 +02:00
*
* @return array<string, T>
* @psalm-pure
*/
2019-07-05 22:24:00 +02:00
function array_change_key_case(array $arr, int $case = CASE_LOWER)
{
}
/**
* @psalm-template TKey as array-key
2019-07-05 22:24:00 +02:00
*
* @param TKey $key
* @param array<TKey, mixed> $search
2019-07-05 22:24:00 +02:00
*
* @return bool
* @psalm-pure
*/
2019-07-05 22:24:00 +02:00
function array_key_exists($key, array $search) : bool
{
}
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey, TValue> $arr
* @param array<TKey, TValue> ...$arr2
2019-07-05 22:24:00 +02:00
*
* @return array<TKey, TValue>
* @psalm-pure
*/
2019-07-05 22:24:00 +02:00
function array_merge_recursive(array $arr, array ...$arr2)
{
}
/**
* @psalm-template TKey as array-key
* @psalm-template TValue
*
* @param array<TKey> $keys
* @param TValue $value
*
* @return array<TKey, TValue>
* @psalm-pure
*/
function array_fill_keys(array $keys, $value): array
{
}
2019-12-29 17:05:08 +01:00
/**
* @psalm-template TKey
2019-12-29 17:05:08 +01:00
*
* @param string $pattern
* @param array<TKey,string> $input
* @param 0|1 $flags 1=PREG_GREP_INVERT
* @return array<TKey,string>
*/
function preg_grep($pattern, array $input, $flags = 0)
{
}
/**
* @param resource $handle
* @param-out closed-resource $handle
*/
function fclose(&$handle) : bool
{
}
/**
* @param string $reference
* @param-out null $reference
*/
function sodium_memzero(string &$reference): void
{
}
/**
* @param mixed $var
* @param bool $return
* @return ($return is true ? string : void)
*/
function var_export($var, bool $return = false) {}
/**
* @param mixed $var
* @param bool $return
* @return ($return is true ? string : true)
*/
function print_r($var, bool $return = false) {}
/**
* @param mixed $var
* @return ($return is true ? string : bool)
*/
function highlight_file($var, bool $return = false) {}
/**
* @param mixed $var
* @return ($return is true ? string : bool)
*/
function highlight_string($var, bool $return = false) {}
/**
* @return ($get_as_float is true ? float : string)
*/
function microtime(bool $get_as_float = false) {}
/**
* @return ($return_float is true ? float : array<string, int>)
*/
function gettimeofday(bool $return_float = false) {}
/**
* @param numeric $number
* @return ($number is int ? int : ($number is float ? float : int|float))
*/
function abs($number) {}
2020-04-08 01:59:20 +02:00
/**
* @template T as string|int|float
* @template TStep as int|float
* @param T $start
* @param T $end
* @param TStep $step
* @return (
* T is int
* ? (TStep is int ? list<int> : list<int|float>)
* : (
* T is float
* ? list<float>
* : (
* T is string
* ? list<string>
* : (
* T is int|float
* ? list<int|float>
* : list<int|float|string>
* )
* )
* )
* )
*/
function range($start, $end, $step = 1) {}
2020-04-15 03:07:44 +02:00
/**
* @return (
* $format is 'd'|'j'|'N'|'w'|'z'|'W'|'m'|'n'|'t'|'L'|'o'|'Y'|'y'|'B'|'g'|'G'|'h'|'H'|'i'|'s'|'u'|'v'|'Z'|'U'|'I'
* ? numeric-string
* : ($timestamp is numeric ? string : string|false)
* )
*/
function date(string $format, int $timestamp = 0) {}