-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Confusing message if callable is incompatible due to argument name #4530
Comments
Added high priority since this is very confusing and we just received another report about this. |
Another similar example with even more confusing error message was found by @msullivan: from typing import Optional, List, Tuple, Dict, Callable
def foo(x: int) -> None: pass
def bar(x: int) -> None: pass
funcs = [foo, bar]
reveal_type(funcs)
def oops(x: List[Callable[[int], None]]) -> None:
reveal_type(x)
oops(funcs) produces the error message |
We should probably schedule this one for next sprint usability bugs squashing week. This happened again, it can very challenging with more complex signatures. |
We also run into similar issues with sufficiently complex overload signatures -- for example, I ended up being confused by this sort of thing in #5235. FWIW, one solution I was sort of tossing around was to modify or refactor |
Note that the error can be even more cryptic if type inference fails because of name mismatch, see #6928 for example. |
Mypy generates a confusing error for this program:
Here is the output:
The actual error is the missing argument name in the type of
y
, but the error message gives no hint about this.The text was updated successfully, but these errors were encountered: