From 6d318e729f18815a491ed2d83462d657a98e23f9 Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Fri, 5 Nov 2021 13:27:45 -0700 Subject: [PATCH] Broaden type for set.union (#6249) `set[int].union(set[str])` is well defined: it returns a set of `int | str`. --- stdlib/builtins.pyi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stdlib/builtins.pyi b/stdlib/builtins.pyi index 47c4b8403..e487c76c6 100644 --- a/stdlib/builtins.pyi +++ b/stdlib/builtins.pyi @@ -868,7 +868,7 @@ class set(MutableSet[_T], Generic[_T]): def remove(self, __element: _T) -> None: ... def symmetric_difference(self, __s: Iterable[_T]) -> Set[_T]: ... def symmetric_difference_update(self, __s: Iterable[_T]) -> None: ... - def union(self, *s: Iterable[_T]) -> Set[_T]: ... + def union(self, *s: Iterable[_S]) -> Set[_T | _S]: ... def update(self, *s: Iterable[_T]) -> None: ... def __len__(self) -> int: ... def __contains__(self, __o: object) -> bool: ... @@ -899,7 +899,7 @@ class frozenset(AbstractSet[_T_co], Generic[_T_co]): def issubset(self, __s: Iterable[object]) -> bool: ... def issuperset(self, __s: Iterable[object]) -> bool: ... def symmetric_difference(self, __s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... - def union(self, *s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... + def union(self, *s: Iterable[_S]) -> FrozenSet[_T_co | _S]: ... def __len__(self) -> int: ... def __contains__(self, __o: object) -> bool: ... def __iter__(self) -> Iterator[_T_co]: ...