diff --git a/stdlib/2/UserString.pyi b/stdlib/2/UserString.pyi index 11436371b..c67b0feab 100644 --- a/stdlib/2/UserString.pyi +++ b/stdlib/2/UserString.pyi @@ -13,9 +13,9 @@ class UserString(Sequence[UserString]): def __hash__(self) -> int: ... def __len__(self) -> int: ... @overload - def __getitem__(self: _UST, i: int) -> _UST: ... + def __getitem__(self: _UST, i: int) -> _UST: ... # type: ignore @overload - def __getitem__(self: _UST, s: slice) -> _UST: ... + def __getitem__(self: _UST, s: slice) -> _UST: ... # type: ignore def __add__(self: _UST, other: Any) -> _UST: ... def __radd__(self: _UST, other: Any) -> _UST: ... def __mul__(self: _UST, other: int) -> _UST: ... @@ -61,7 +61,11 @@ class UserString(Sequence[UserString]): def upper(self: _UST) -> _UST: ... def zfill(self: _UST, width: int) -> _UST: ... -class MutableString(UserString, MutableSequence[MutableString]): +class MutableString(UserString, MutableSequence[MutableString]): # type: ignore + @overload + def __getitem__(self: _MST, i: int) -> _MST: ... + @overload + def __getitem__(self: _MST, s: slice) -> _MST: ... def __setitem__(self, index: Union[int, slice], sub: Any) -> None: ... def __delitem__(self, index: Union[int, slice]) -> None: ... def immutable(self) -> UserString: ... diff --git a/stdlib/2/typing.pyi b/stdlib/2/typing.pyi index bf62d2abb..e2253d89b 100644 --- a/stdlib/2/typing.pyi +++ b/stdlib/2/typing.pyi @@ -163,6 +163,12 @@ class MutableSequence(Sequence[_T], Generic[_T]): def insert(self, index: int, object: _T) -> None: ... @overload @abstractmethod + def __getitem__(self, i: int) -> _T: ... + @overload + @abstractmethod + def __getitem__(self, s: slice) -> MutableSequence[_T]: ... + @overload + @abstractmethod def __setitem__(self, i: int, o: _T) -> None: ... @overload @abstractmethod diff --git a/stdlib/2and3/xml/etree/ElementTree.pyi b/stdlib/2and3/xml/etree/ElementTree.pyi index 5ae90d349..e813789c2 100644 --- a/stdlib/2and3/xml/etree/ElementTree.pyi +++ b/stdlib/2and3/xml/etree/ElementTree.pyi @@ -74,7 +74,7 @@ class Element(MutableSequence[Element]): @overload def __getitem__(self, i: int) -> Element: ... @overload - def __getitem__(self, s: slice) -> Sequence[Element]: ... + def __getitem__(self, s: slice) -> MutableSequence[Element]: ... def __len__(self) -> int: ... @overload def __setitem__(self, i: int, o: Element) -> None: ... diff --git a/stdlib/3/collections/__init__.pyi b/stdlib/3/collections/__init__.pyi index 4aa0f6a92..19f5e59ec 100644 --- a/stdlib/3/collections/__init__.pyi +++ b/stdlib/3/collections/__init__.pyi @@ -86,7 +86,7 @@ class UserList(MutableSequence[_T]): @overload def __getitem__(self, i: int) -> _T: ... @overload - def __getitem__(self, i: slice) -> Sequence[_T]: ... + def __getitem__(self, i: slice) -> MutableSequence[_T]: ... @overload def __setitem__(self, i: int, o: _T) -> None: ... @overload @@ -217,7 +217,7 @@ class deque(MutableSequence[_T], Generic[_T]): @overload def __getitem__(self, index: int) -> _T: ... @overload - def __getitem__(self, s: slice) -> Sequence[_T]: + def __getitem__(self, s: slice) -> MutableSequence[_T]: raise TypeError @overload def __setitem__(self, i: int, x: _T) -> None: ... diff --git a/stdlib/3/typing.pyi b/stdlib/3/typing.pyi index 286b63518..4053faf13 100644 --- a/stdlib/3/typing.pyi +++ b/stdlib/3/typing.pyi @@ -254,6 +254,12 @@ class MutableSequence(Sequence[_T], Generic[_T]): def insert(self, index: int, object: _T) -> None: ... @overload @abstractmethod + def __getitem__(self, i: int) -> _T: ... + @overload + @abstractmethod + def __getitem__(self, s: slice) -> MutableSequence[_T]: ... + @overload + @abstractmethod def __setitem__(self, i: int, o: _T) -> None: ... @overload @abstractmethod