diff --git a/stdlib/2/__builtin__.pyi b/stdlib/2/__builtin__.pyi index 5c203e1ec..490c15b14 100644 --- a/stdlib/2/__builtin__.pyi +++ b/stdlib/2/__builtin__.pyi @@ -1356,11 +1356,17 @@ else: *iterables: Iterable[Any]) -> List[_S]: ... if sys.version_info >= (3,): @overload - def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... + def max(__arg1: _LT, __arg2: _LT, *_args: _LT, key: None = ...) -> _LT: ... @overload - def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ... + def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], _LT]) -> _T: ... @overload - def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ..., default: _VT) -> Union[_T, _VT]: ... + def max(__iterable: Iterable[_LT], *, key: None = ...) -> _LT: ... + @overload + def max(__iterable: Iterable[_T], *, key: Callable[[_T], _LT]) -> _T: ... + @overload + def max(__iterable: Iterable[_LT], *, key: None = ..., default: _T) -> Union[_LT, _T]: ... + @overload + def max(__iterable: Iterable[_T1], *, key: Callable[[_T1], _LT], default: _T2) -> Union[_T1, _T2]: ... else: @overload def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... @@ -1368,11 +1374,17 @@ else: def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ... if sys.version_info >= (3,): @overload - def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... + def min(__arg1: _LT, __arg2: _LT, *_args: _LT, key: None = ...) -> _LT: ... @overload - def min(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ... + def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], _LT]) -> _T: ... @overload - def min(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ..., default: _VT) -> Union[_T, _VT]: ... + def min(__iterable: Iterable[_LT], *, key: None = ...) -> _LT: ... + @overload + def min(__iterable: Iterable[_T], *, key: Callable[[_T], _LT]) -> _T: ... + @overload + def min(__iterable: Iterable[_LT], *, key: None = ..., default: _T) -> Union[_LT, _T]: ... + @overload + def min(__iterable: Iterable[_T1], *, key: Callable[[_T1], _LT], default: _T2) -> Union[_T1, _T2]: ... else: @overload def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... diff --git a/stdlib/2and3/builtins.pyi b/stdlib/2and3/builtins.pyi index 5c203e1ec..490c15b14 100644 --- a/stdlib/2and3/builtins.pyi +++ b/stdlib/2and3/builtins.pyi @@ -1356,11 +1356,17 @@ else: *iterables: Iterable[Any]) -> List[_S]: ... if sys.version_info >= (3,): @overload - def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... + def max(__arg1: _LT, __arg2: _LT, *_args: _LT, key: None = ...) -> _LT: ... @overload - def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ... + def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], _LT]) -> _T: ... @overload - def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ..., default: _VT) -> Union[_T, _VT]: ... + def max(__iterable: Iterable[_LT], *, key: None = ...) -> _LT: ... + @overload + def max(__iterable: Iterable[_T], *, key: Callable[[_T], _LT]) -> _T: ... + @overload + def max(__iterable: Iterable[_LT], *, key: None = ..., default: _T) -> Union[_LT, _T]: ... + @overload + def max(__iterable: Iterable[_T1], *, key: Callable[[_T1], _LT], default: _T2) -> Union[_T1, _T2]: ... else: @overload def max(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... @@ -1368,11 +1374,17 @@ else: def max(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ... if sys.version_info >= (3,): @overload - def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ... + def min(__arg1: _LT, __arg2: _LT, *_args: _LT, key: None = ...) -> _LT: ... @overload - def min(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ...) -> _T: ... + def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], _LT]) -> _T: ... @overload - def min(__iterable: Iterable[_T], *, key: Callable[[_T], Any] = ..., default: _VT) -> Union[_T, _VT]: ... + def min(__iterable: Iterable[_LT], *, key: None = ...) -> _LT: ... + @overload + def min(__iterable: Iterable[_T], *, key: Callable[[_T], _LT]) -> _T: ... + @overload + def min(__iterable: Iterable[_LT], *, key: None = ..., default: _T) -> Union[_LT, _T]: ... + @overload + def min(__iterable: Iterable[_T1], *, key: Callable[[_T1], _LT], default: _T2) -> Union[_T1, _T2]: ... else: @overload def min(__arg1: _T, __arg2: _T, *_args: _T, key: Callable[[_T], Any] = ...) -> _T: ...