More precise return type for sum() (#6573)

It returns 0 on an empty iterable, and that's the only int it can return for arbitrary iterables.
This commit is contained in:
Jelle Zijlstra
2021-12-12 16:58:01 -08:00
committed by GitHub
parent 383b5877bc
commit 88c8a5829e

View File

@@ -1385,13 +1385,13 @@ def sorted(__iterable: Iterable[_T], *, key: Callable[[_T], SupportsLessThan], r
if sys.version_info >= (3, 8):
@overload
def sum(__iterable: Iterable[_T]) -> _T | int: ...
def sum(__iterable: Iterable[_T]) -> _T | Literal[0]: ...
@overload
def sum(__iterable: Iterable[_T], start: _S) -> _T | _S: ...
else:
@overload
def sum(__iterable: Iterable[_T]) -> _T | int: ...
def sum(__iterable: Iterable[_T]) -> _T | Literal[0]: ...
@overload
def sum(__iterable: Iterable[_T], __start: _S) -> _T | _S: ...