@@ -1220,17 +1220,19 @@ class dict(MutableMapping[_KT, _VT]):
12201220 def fromkeys (cls , iterable : Iterable [_T ], value : _S , / ) -> dict [_T , _S ]: ...
12211221 # Positional-only in dict, but not in MutableMapping
12221222 @overload # type: ignore[override]
1223- def get (self , key : _KT , default : None = None , / ) -> _VT | None : ...
1223+ def get (self , key : object , default : None = None , / ) -> _VT | None : ...
12241224 @overload
1225- def get (self , key : _KT , default : _VT , / ) -> _VT : ...
1225+ def get (self , key : object , default : _VT , / ) -> _VT : ...
12261226 @overload
1227- def get (self , key : _KT , default : _T , / ) -> _VT | _T : ...
1227+ def get (self , key : object , default : _T , / ) -> _VT | _T : ...
1228+ # dict.pop allows arbitrary types, which matches runtime semantics.
1229+ # linters may choose to warn if the given type does not overlap with the key type
12281230 @overload
1229- def pop (self , key : _KT , / ) -> _VT : ...
1231+ def pop (self , key : object , / ) -> _VT : ...
12301232 @overload
1231- def pop (self , key : _KT , default : _VT , / ) -> _VT : ...
1233+ def pop (self , key : object , default : _VT , / ) -> _VT : ...
12321234 @overload
1233- def pop (self , key : _KT , default : _T , / ) -> _VT | _T : ...
1235+ def pop (self , key : object , default : _T , / ) -> _VT | _T : ...
12341236 def __len__ (self ) -> int : ...
12351237 def __getitem__ (self , key : _KT , / ) -> _VT : ...
12361238 def __setitem__ (self , key : _KT , value : _VT , / ) -> None : ...
0 commit comments