[ty] Improve diagnostics when NotImplemented is called (#21523)
## Summary Fixes https://github.com/astral-sh/ty/issues/1571. I realised I was overcomplicating things when I described what we should do in that issue description. The simplest thing to do here is just to special-case call expressions and short-circuit the call-binding machinery entirely if we see it's `NotImplemented` being called. It doesn't really matter if the subdiagnostic doesn't fire when a union is called and one element of the union is `NotImplemented` -- the subdiagnostic doesn't need to be exhaustive; it's just to help people in some common cases. ## Test Plan Added snapshots
This commit is contained in:
@@ -200,6 +200,9 @@ isinstance("", t.Any) # error: [invalid-argument-type]
|
||||
|
||||
## The builtin `NotImplemented` constant is not callable
|
||||
|
||||
<!-- snapshot-diagnostics -->
|
||||
|
||||
```py
|
||||
NotImplemented() # error: [call-non-callable]
|
||||
raise NotImplemented() # error: [call-non-callable]
|
||||
raise NotImplemented("this module is not implemented yet!!!") # error: [call-non-callable]
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user