Bug Report
I was really excited to see #13513 merge but trying it out seems like it doesn't actually type-check things
here's a small example
# main.py
from typing import Protocol
class P(Protocol):
def f(self) -> str: ...
import t
t_p: P = t # expect an error here, it does not match P
# t.py
def f() -> int:
return 6
I expect this to error because the f inside t returns int but the protocol specifies it should return str.
additionally, I think I should also be able to write something like this, but it currently errors for an unrelated reason (even when the module matches the protocol):
from typing import Protocol
class P(Protocol):
def f(self) -> str: ...
t: P
import t # error: Name "t" already defined on line 6
Your Environment
- Mypy version used: 0.981
- Mypy command-line flags:
mypy main.py
- Mypy configuration options from
mypy.ini (and other config files): n/a
- Python version used: 3.8.10
Bug Report
I was really excited to see #13513 merge but trying it out seems like it doesn't actually type-check things
here's a small example
I expect this to error because the
finsidetreturnsintbut the protocol specifies it should returnstr.additionally, I think I should also be able to write something like this, but it currently errors for an unrelated reason (even when the module matches the protocol):
Your Environment
mypy main.pymypy.ini(and other config files): n/a