blob: 0b4de54dbe8bafe82e8fe3cbc79da5cf3fca9e19 [file] [log] [blame] [edit]
-- Test cases for the default plugin
--
-- Note that we have additional test cases in pythoneval.test (that use real typeshed stubs).
[case testContextManagerWithGenericFunction]
from contextlib import contextmanager
from typing import TypeVar, Iterator
T = TypeVar('T')
@contextmanager
def yield_id(item: T) -> Iterator[T]:
yield item
reveal_type(yield_id) # N: Revealed type is 'def [T] (item: T`-1) -> contextlib.GeneratorContextManager[T`-1]'
with yield_id(1) as x:
reveal_type(x) # N: Revealed type is 'builtins.int*'
f = yield_id
def g(x, y): pass
f = g # E: Incompatible types in assignment (expression has type "Callable[[Any, Any], Any]", variable has type "Callable[[T], GeneratorContextManager[T]]")
[typing fixtures/typing-medium.pyi]
[builtins fixtures/tuple.pyi]
[case testContextManagerWithUnspecifiedArguments]
from contextlib import contextmanager
from typing import Callable, Iterator
c: Callable[..., Iterator[int]]
reveal_type(c) # N: Revealed type is 'def (*Any, **Any) -> typing.Iterator[builtins.int]'
reveal_type(contextmanager(c)) # N: Revealed type is 'def (*Any, **Any) -> contextlib.GeneratorContextManager[builtins.int*]'
[typing fixtures/typing-medium.pyi]
[builtins fixtures/tuple.pyi]