More precise overloads for get/pop methods (#10501)

Fixes #10293

Co-authored-by: AlexWaygood <alex.waygood@gmail.com>
This commit is contained in:
Eugene Toder
2023-07-26 11:37:32 -04:00
committed by GitHub
parent 21e8f7b02b
commit e86c61da86
7 changed files with 38 additions and 14 deletions

View File

@@ -15,8 +15,10 @@ class Shelf(MutableMapping[str, _VT]):
) -> None: ...
def __iter__(self) -> Iterator[str]: ...
def __len__(self) -> int: ...
@overload # type: ignore[override]
def get(self, key: str, default: None = None) -> _VT | None: ... # type: ignore[misc] # overlapping overloads
@overload
def get(self, key: str) -> _VT | None: ...
def get(self, key: str, default: _VT) -> _VT: ...
@overload
def get(self, key: str, default: _T) -> _VT | _T: ...
def __getitem__(self, key: str) -> _VT: ...