From 6a4044fd9b4cde67a21062de0b0a152a4a4beaca Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Wed, 4 Mar 2020 19:24:03 -0800 Subject: [PATCH] Make `frozenset` covariant (#3808) The convariance was lost in #1057 --- stdlib/2/__builtin__.pyi | 26 +++++++++++++------------- stdlib/2and3/builtins.pyi | 26 +++++++++++++------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/stdlib/2/__builtin__.pyi b/stdlib/2/__builtin__.pyi index e5fda2f31..1fdb7c66b 100644 --- a/stdlib/2/__builtin__.pyi +++ b/stdlib/2/__builtin__.pyi @@ -1049,24 +1049,24 @@ class set(MutableSet[_T], Generic[_T]): def __gt__(self, s: AbstractSet[object]) -> bool: ... __hash__: None # type: ignore -class frozenset(AbstractSet[_T], Generic[_T]): - def __init__(self, iterable: Iterable[_T] = ...) -> None: ... - def copy(self) -> FrozenSet[_T]: ... - def difference(self, *s: Iterable[object]) -> FrozenSet[_T]: ... - def intersection(self, *s: Iterable[object]) -> FrozenSet[_T]: ... - def isdisjoint(self, s: Iterable[_T]) -> bool: ... +class frozenset(AbstractSet[_T_co], Generic[_T_co]): + def __init__(self, iterable: Iterable[_T_co] = ...) -> None: ... + def copy(self) -> FrozenSet[_T_co]: ... + def difference(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... + def intersection(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... + def isdisjoint(self, s: Iterable[_T_co]) -> bool: ... def issubset(self, s: Iterable[object]) -> bool: ... def issuperset(self, s: Iterable[object]) -> bool: ... - def symmetric_difference(self, s: Iterable[_T]) -> FrozenSet[_T]: ... - def union(self, *s: Iterable[_T]) -> FrozenSet[_T]: ... + def symmetric_difference(self, s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... + def union(self, *s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... def __len__(self) -> int: ... def __contains__(self, o: object) -> bool: ... - def __iter__(self) -> Iterator[_T]: ... + def __iter__(self) -> Iterator[_T_co]: ... def __str__(self) -> str: ... - def __and__(self, s: AbstractSet[_T]) -> FrozenSet[_T]: ... - def __or__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T, _S]]: ... - def __sub__(self, s: AbstractSet[_T]) -> FrozenSet[_T]: ... - def __xor__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T, _S]]: ... + def __and__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __or__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T_co, _S]]: ... + def __sub__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __xor__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T_co, _S]]: ... def __le__(self, s: AbstractSet[object]) -> bool: ... def __lt__(self, s: AbstractSet[object]) -> bool: ... def __ge__(self, s: AbstractSet[object]) -> bool: ... diff --git a/stdlib/2and3/builtins.pyi b/stdlib/2and3/builtins.pyi index e5fda2f31..1fdb7c66b 100644 --- a/stdlib/2and3/builtins.pyi +++ b/stdlib/2and3/builtins.pyi @@ -1049,24 +1049,24 @@ class set(MutableSet[_T], Generic[_T]): def __gt__(self, s: AbstractSet[object]) -> bool: ... __hash__: None # type: ignore -class frozenset(AbstractSet[_T], Generic[_T]): - def __init__(self, iterable: Iterable[_T] = ...) -> None: ... - def copy(self) -> FrozenSet[_T]: ... - def difference(self, *s: Iterable[object]) -> FrozenSet[_T]: ... - def intersection(self, *s: Iterable[object]) -> FrozenSet[_T]: ... - def isdisjoint(self, s: Iterable[_T]) -> bool: ... +class frozenset(AbstractSet[_T_co], Generic[_T_co]): + def __init__(self, iterable: Iterable[_T_co] = ...) -> None: ... + def copy(self) -> FrozenSet[_T_co]: ... + def difference(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... + def intersection(self, *s: Iterable[object]) -> FrozenSet[_T_co]: ... + def isdisjoint(self, s: Iterable[_T_co]) -> bool: ... def issubset(self, s: Iterable[object]) -> bool: ... def issuperset(self, s: Iterable[object]) -> bool: ... - def symmetric_difference(self, s: Iterable[_T]) -> FrozenSet[_T]: ... - def union(self, *s: Iterable[_T]) -> FrozenSet[_T]: ... + def symmetric_difference(self, s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... + def union(self, *s: Iterable[_T_co]) -> FrozenSet[_T_co]: ... def __len__(self) -> int: ... def __contains__(self, o: object) -> bool: ... - def __iter__(self) -> Iterator[_T]: ... + def __iter__(self) -> Iterator[_T_co]: ... def __str__(self) -> str: ... - def __and__(self, s: AbstractSet[_T]) -> FrozenSet[_T]: ... - def __or__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T, _S]]: ... - def __sub__(self, s: AbstractSet[_T]) -> FrozenSet[_T]: ... - def __xor__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T, _S]]: ... + def __and__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __or__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T_co, _S]]: ... + def __sub__(self, s: AbstractSet[_T_co]) -> FrozenSet[_T_co]: ... + def __xor__(self, s: AbstractSet[_S]) -> FrozenSet[Union[_T_co, _S]]: ... def __le__(self, s: AbstractSet[object]) -> bool: ... def __lt__(self, s: AbstractSet[object]) -> bool: ... def __ge__(self, s: AbstractSet[object]) -> bool: ...