diff --git a/src/Psalm/Internal/Stubs/CoreGenericFunctions.php b/src/Psalm/Internal/Stubs/CoreGenericFunctions.php index 32c8b0803..e17c5934b 100644 --- a/src/Psalm/Internal/Stubs/CoreGenericFunctions.php +++ b/src/Psalm/Internal/Stubs/CoreGenericFunctions.php @@ -1,6 +1,6 @@ $arr * @param mixed $search_value @@ -10,7 +10,7 @@ function array_keys(array $arr, $search_value = null, bool $strict = false) {} /** - * @template T + * @psalm-template T * * @param array $arr * @return array @@ -18,7 +18,7 @@ function array_keys(array $arr, $search_value = null, bool $strict = false) {} function array_values(array $arr) {} /** - * @template T + * @psalm-template T * * @param array $arr * @param int $sort_flags @@ -27,8 +27,8 @@ function array_values(array $arr) {} function array_unique(array $arr, int $sort_flags = 0) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @param array $arr2 @@ -39,8 +39,8 @@ function array_unique(array $arr, int $sort_flags = 0) {} function array_intersect(array $arr, array $arr2, array $arr3 = null, array $arr4 = null) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @param array $arr2 @@ -51,8 +51,8 @@ function array_intersect(array $arr, array $arr2, array $arr3 = null, array $arr function array_intersect_key(array $arr, array $arr2, array $arr3 = null, array $arr4 = null) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @param array $arr2 @@ -61,8 +61,8 @@ function array_intersect_key(array $arr, array $arr2, array $arr3 = null, array function array_combine(array $arr, array $arr2) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @param array $arr2 @@ -73,8 +73,8 @@ function array_combine(array $arr, array $arr2) {} function array_diff(array $arr, array $arr2, array $arr3 = null, array $arr4 = null) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @param array $arr2 @@ -85,8 +85,8 @@ function array_diff(array $arr, array $arr2, array $arr3 = null, array $arr4 = n function array_diff_key(array $arr, array $arr2, array $arr3 = null, array $arr4 = null) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @return null|TValue @@ -95,8 +95,8 @@ function array_diff_key(array $arr, array $arr2, array $arr3 = null, array $arr4 function array_shift(array &$arr) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @return null|TValue @@ -105,8 +105,8 @@ function array_shift(array &$arr) {} function array_pop(array &$arr) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @param bool $preserve_keys @@ -115,8 +115,8 @@ function array_pop(array &$arr) {} function array_reverse(array $arr, bool $preserve_keys = false) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @return array @@ -124,8 +124,8 @@ function array_reverse(array $arr, bool $preserve_keys = false) {} function array_flip(array $arr) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @return TValue|false @@ -134,8 +134,8 @@ function array_flip(array $arr) {} function current(array $arr) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @return TValue|false @@ -144,8 +144,8 @@ function current(array $arr) {} function next(array &$arr) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @return TValue|false @@ -154,8 +154,8 @@ function next(array &$arr) {} function prev(array &$arr) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @return TValue|false @@ -164,8 +164,8 @@ function prev(array &$arr) {} function reset(array &$arr) {} /** - * @template TKey - * @template TValue + * @psalm-template TKey + * @psalm-template TValue * * @param array $arr * @return TValue|false @@ -174,7 +174,7 @@ function reset(array &$arr) {} function end(array &$arr) {} /** - * @template TKey + * @psalm-template TKey * * @param array $arr * @return TKey|null @@ -183,7 +183,7 @@ function end(array &$arr) {} function key($arr) {} /** - * @template T + * @psalm-template T * * @param mixed $needle * @param array $haystack diff --git a/src/Psalm/Type.php b/src/Psalm/Type.php index 9aa3f49e9..4883c6539 100644 --- a/src/Psalm/Type.php +++ b/src/Psalm/Type.php @@ -204,8 +204,10 @@ abstract class Type $generic_type_value = self::fixScalarTerms($generic_type, false); - if (($generic_type_value === 'array' || $generic_type_value === 'Generator') && - count($generic_params) === 1 + if (($generic_type_value === 'array' + || $generic_type_value === 'Generator' + || $generic_type_value === 'iterable') + && count($generic_params) === 1 ) { array_unshift($generic_params, new Union([new TMixed])); }