special-case `NotImplementedType` in binop signatures to match runtime semantics
Open
typechecking
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 516
- PR merge metrics
- No merged PRs in 30d
Description
### Describe the Bug
```py
from types import NotImplementedType
class A:
def __add__(self, i: object) -> NotImplementedType: ...
class B:
def __radd__(self, i: A) -> int: ...
_ = A() + B() # _NotImplementedType
```
binops can `Never` return `NotImplementedType` by cause of runtime semantics, i would expect this to result in `Never` or `int`
### Sandbox Link
_No response_
### (Only applicable for extension issues) IDE Information
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.