You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Argument 1 to "forwarder1" has incompatible type "Callable[[int, str, float], str]"; expected "FuncType[]" [arg-type]
Argument 2 to "forwarder1" has incompatible type "float"; expected [arg-type]
The text was updated successfully, but these errors were encountered:
Fixes#15734Fixes#15188Fixes#14321Fixes#13107 (plain Callable was
already working, this fixes the protocol example)
Fixes#16058
It looks like treating trivial suffixes (especially for erased
callables) as "whatever works" is a right thing, because it reflects the
whole idea of why we normally check subtyping with respect to an e.g.
erased type. As you can see this fixes a bunch of issues. Note it was
necessary to make couple more tweaks to make everything work smoothly:
* Adjust self-type erasure level in `checker.py` to match other places.
* Explicitly allow `Callable` as a `self`/`cls` annotation (actually I
am not sure we need to keep this check at all, since we now have good
inference for self-types, and we check they are safe either at
definition site or at call site).
To Reproduce
mypy Playground
Expected Behavior
No error found.
Actual Behavior
Argument 1 to "forwarder1" has incompatible type "Callable[[int, str, float], str]"; expected "FuncType[]" [arg-type]
Argument 2 to "forwarder1" has incompatible type "float"; expected [arg-type]
The text was updated successfully, but these errors were encountered: