Closed
Labels
bugmypy got something wrongmypy got something wrongfalse-positivemypy gave an error on correct codemypy gave an error on correct codepriority-1-normal
Description
from typing import Generic, TypeVar
T = TypeVar('T')
class C(Generic[T]):
def foo(self, x: T) -> None:
if isinstance(x, int):
self.bar(x)
def bar(self, x: T) -> None:
pass
fails with Argument 1 to "bar" of "C" has incompatible type "int"; expected "T", even though x is obviously a T (that was its annotated type!)
Arguably this is just the Dreaded Intersection Bug (#3603) in a different manifestation?
Metadata
Metadata
Assignees
Labels
bugmypy got something wrongmypy got something wrongfalse-positivemypy gave an error on correct codemypy gave an error on correct codepriority-1-normal
Activity
ilevkivskyi commentedon Oct 3, 2018
Yes, and this is probably a hardest aspect of the problem, because I don't see an easy way to work around this using some fake
TypeInfos for intersections.Narrow type variable bounds in binder (#19183)