blob: 7493763d3e72a58dee1a9b0d7cffaeec282ac4e5 [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]