blob: 3970c8cacfbf7a47edefe26f409779be6fc88cbc [file] [log] [blame] [edit]
[case testPEP695TypeAliasDep]
# flags: --enable-incomplete-feature=NewGenericSyntax
import m
def g() -> m.C:
return m.f()
[file m.py]
type C = int
def f() -> int:
pass
[file m.py.2]
type C = str
def f() -> int:
pass
[out]
==
main:4: error: Incompatible return value type (got "int", expected "str")
[case testPEP695ChangeOldStyleToNewStyleTypeAlias]
# flags: --enable-incomplete-feature=NewGenericSyntax
from m import A
A()
[file m.py]
A = int
[file m.py.2]
type A = int
[typing fixtures/typing-full.pyi]
[builtins fixtures/tuple.pyi]
[out]
==
main:3: error: "TypeAliasType" not callable
[case testPEP695VarianceChangesDueToDependency]
# flags: --enable-incomplete-feature=NewGenericSyntax
from a import C
x: C[object] = C[int]()
[file a.py]
from b import A
class C[T]:
def f(self) -> A[T]: ...
[file b.py]
class A[T]:
def f(self) -> T: ...
[file b.py.2]
class A[T]:
def f(self) -> list[T]: ...
[out]
==
main:4: error: Incompatible types in assignment (expression has type "C[int]", variable has type "C[object]")
[case testPEP695TypeAliasChangesDueToDependency]
# flags: --enable-incomplete-feature=NewGenericSyntax
from a import A
x: A
x = 0
x = ''
[file a.py]
from b import B
type A = B[int, str]
[file b.py]
from typing import Union as B
[file b.py.2]
from builtins import tuple as B
[builtins fixtures/tuple.pyi]
[typing fixtures/typing-full.pyi]
[out]
==
main:4: error: Incompatible types in assignment (expression has type "int", variable has type "tuple[int, str]")
main:5: error: Incompatible types in assignment (expression has type "str", variable has type "tuple[int, str]")