blob: c72cb9d08842e891d966e84ca0f5deb29289ad62 [file]
[case testListTypeAlias]
from typing import List
def f() -> List[int]: pass
[builtins fixtures/list.pyi]
[out]
MypyFile:1(
ImportFrom:1(typing, [List])
FuncDef:2(
f
def () -> builtins.list[builtins.int]
Block:2(
PassStmt:2())))
[case testDictTypeAlias]
from typing import Dict
def f() -> Dict[int, str]: pass
[builtins fixtures/dict.pyi]
[out]
MypyFile:1(
ImportFrom:1(typing, [Dict])
FuncDef:2(
f
def () -> builtins.dict[builtins.int, builtins.str]
Block:2(
PassStmt:2())))
[case testQualifiedTypeAlias]
import typing
def f() -> typing.List[int]: pass
[builtins fixtures/list.pyi]
[out]
MypyFile:1(
Import:1(typing)
FuncDef:2(
f
def () -> builtins.list[builtins.int]
Block:2(
PassStmt:2())))
[case testTypeApplicationWithTypeAlias]
from typing import List
List[List[int]]
[builtins fixtures/list.pyi]
[out]
MypyFile:1(
ImportFrom:1(typing, [List])
ExpressionStmt:2(
TypeApplication:2(
NameExpr(List [typing.List])
Types(
builtins.list[builtins.int]))))
[case testTypeApplicationWithQualifiedTypeAlias]
import typing
typing.List[typing.List[int]]
[builtins fixtures/list.pyi]
[out]
MypyFile:1(
Import:1(typing)
ExpressionStmt:2(
TypeApplication:2(
MemberExpr:2(
NameExpr(typing)
List [typing.List])
Types(
builtins.list[builtins.int]))))
[case testSimpleTypeAlias]
import typing
class A: pass
A2 = A
def f(x: A2) -> A: pass
[out]
MypyFile:1(
Import:1(typing)
ClassDef:2(
A
PassStmt:2())
AssignmentStmt:3(
NameExpr(A2* [__main__.A2])
NameExpr(A [__main__.A]))
FuncDef:4(
f
Args(
Var(x))
def (x: __main__.A) -> __main__.A
Block:4(
PassStmt:4())))
[case testQualifiedSimpleTypeAlias]
import typing
import _m
A2 = _m.A
x = 1 # type: A2
[file _m.py]
import typing
class A: pass
[out]
MypyFile:1(
Import:1(typing)
Import:2(_m)
AssignmentStmt:3(
NameExpr(A2* [__main__.A2])
MemberExpr:3(
NameExpr(_m)
A [_m.A]))
AssignmentStmt:4(
NameExpr(x [__main__.x])
IntExpr(1)
_m.A))
[case testUnionTypeAlias]
from typing import Union
U = Union[int, str]
def f(x: U) -> None: pass
[out]
MypyFile:1(
ImportFrom:1(typing, [Union])
AssignmentStmt:2(
NameExpr(U* [__main__.U])
TypeAliasExpr(Union[builtins.int, builtins.str]))
FuncDef:3(
f
Args(
Var(x))
def (x: Union[builtins.int, builtins.str])
Block:3(
PassStmt:3())))
[case testUnionTypeAlias2]
from typing import Union
class A: pass
U = Union[int, A]
def f(x: U) -> None: pass
[out]
MypyFile:1(
ImportFrom:1(typing, [Union])
ClassDef:2(
A
PassStmt:2())
AssignmentStmt:3(
NameExpr(U* [__main__.U])
TypeAliasExpr(Union[builtins.int, __main__.A]))
FuncDef:4(
f
Args(
Var(x))
def (x: Union[builtins.int, __main__.A])
Block:4(
PassStmt:4())))
[case testUnionTypeAliasWithQualifiedUnion]
import typing
U = typing.Union[int, str]
def f(x: U) -> None: pass
[out]
MypyFile:1(
Import:1(typing)
AssignmentStmt:2(
NameExpr(U* [__main__.U])
TypeAliasExpr(Union[builtins.int, builtins.str]))
FuncDef:3(
f
Args(
Var(x))
def (x: Union[builtins.int, builtins.str])
Block:3(
PassStmt:3())))
[case testTupleTypeAlias]
from typing import Tuple
T = Tuple[int, str]
def f(x: T) -> None: pass
[out]
MypyFile:1(
ImportFrom:1(typing, [Tuple])
AssignmentStmt:2(
NameExpr(T* [__main__.T])
TypeAliasExpr(Tuple[builtins.int, builtins.str]))
FuncDef:3(
f
Args(
Var(x))
def (x: Tuple[builtins.int, builtins.str])
Block:3(
PassStmt:3())))
[case testCallableTypeAlias]
from typing import Callable
C = Callable[[int], None]
def f(x: C) -> None: pass
[out]
MypyFile:1(
ImportFrom:1(typing, [Callable])
AssignmentStmt:2(
NameExpr(C* [__main__.C])
TypeAliasExpr(def (builtins.int)))
FuncDef:3(
f
Args(
Var(x))
def (x: def (builtins.int))
Block:3(
PassStmt:3())))
[case testGenericTypeAlias]
from typing import Generic, TypeVar
T = TypeVar('T')
class G(Generic[T]): pass
A = G[int]
def f(x: A) -> None: pass
[out]
MypyFile:1(
ImportFrom:1(typing, [Generic, TypeVar])
AssignmentStmt:2(
NameExpr(T* [__main__.T])
TypeVarExpr:2())
ClassDef:3(
G
TypeVars(
T)
PassStmt:3())
AssignmentStmt:4(
NameExpr(A* [__main__.A])
TypeAliasExpr(__main__.G[builtins.int]))
FuncDef:5(
f
Args(
Var(x))
def (x: __main__.G[builtins.int])
Block:5(
PassStmt:5())))
[case testGenericTypeAlias2]
from typing import List
A = List[int]
def f(x: A) -> None: pass
[builtins fixtures/list.pyi]
[out]
MypyFile:1(
ImportFrom:1(typing, [List])
AssignmentStmt:2(
NameExpr(A* [__main__.A])
TypeAliasExpr(builtins.list[builtins.int]))
FuncDef:3(
f
Args(
Var(x))
def (x: builtins.list[builtins.int])
Block:3(
PassStmt:3())))
[case testImportUnionTypeAlias]
import typing
from _m import U
def f(x: U) -> None: pass
[file _m.py]
from typing import Union
class A: pass
U = Union[int, A]
[out]
MypyFile:1(
Import:1(typing)
ImportFrom:2(_m, [U])
FuncDef:3(
f
Args(
Var(x))
def (x: Union[builtins.int, _m.A])
Block:3(
PassStmt:3())))
[case testImportUnionTypeAlias2]
import typing
import _m
def f(x: _m.U) -> None: pass
[file _m.py]
from typing import Union
class A: pass
U = Union[int, A]
[out]
MypyFile:1(
Import:1(typing)
Import:2(_m)
FuncDef:3(
f
Args(
Var(x))
def (x: Union[builtins.int, _m.A])
Block:3(
PassStmt:3())))
[case testImportSimpleTypeAlias]
import typing
from _m import A
def f(x: A) -> None: pass
[file _m.py]
import typing
A = int
[out]
MypyFile:1(
Import:1(typing)
ImportFrom:2(_m, [A])
FuncDef:3(
f
Args(
Var(x))
def (x: builtins.int)
Block:3(
PassStmt:3())))
[case testImportSimpleTypeAlias2]
import typing
import _m
def f(x: _m.A) -> None: pass
[file _m.py]
import typing
A = int
[out]
MypyFile:1(
Import:1(typing)
Import:2(_m)
FuncDef:3(
f
Args(
Var(x))
def (x: builtins.int)
Block:3(
PassStmt:3())))
[case testAnyTypeAlias]
from typing import Any
A = Any
a = 1 # type: A
[out]
MypyFile:1(
ImportFrom:1(typing, [Any])
AssignmentStmt:2(
NameExpr(A* [__main__.A])
NameExpr(Any [typing.Any]))
AssignmentStmt:3(
NameExpr(a [__main__.a])
IntExpr(1)
Any))
[case testAnyTypeAlias2]
import typing
A = typing.Any
a = 1 # type: A
[out]
MypyFile:1(
Import:1(typing)
AssignmentStmt:2(
NameExpr(A* [__main__.A])
MemberExpr:2(
NameExpr(typing)
Any [typing.Any]))
AssignmentStmt:3(
NameExpr(a [__main__.a])
IntExpr(1)
Any))
[case testTypeAliasAlias]
from typing import Union
U = Union[int, str]
U2 = U
x = 1 # type: U2
[out]
MypyFile:1(
ImportFrom:1(typing, [Union])
AssignmentStmt:2(
NameExpr(U* [__main__.U])
TypeAliasExpr(Union[builtins.int, builtins.str]))
AssignmentStmt:3(
NameExpr(U2* [__main__.U2])
NameExpr(U [__main__.U]))
AssignmentStmt:4(
NameExpr(x [__main__.x])
IntExpr(1)
Union[builtins.int, builtins.str]))
[case testTypeAliasOfImportedAlias]
from typing import Union
from _m import U
U2 = U
x = 1 # type: U2
[file _m.py]
from typing import Union
U = Union[int, str]
[out]
MypyFile:1(
ImportFrom:1(typing, [Union])
ImportFrom:2(_m, [U])
AssignmentStmt:3(
NameExpr(U2* [__main__.U2])
NameExpr(U [_m.U]))
AssignmentStmt:4(
NameExpr(x [__main__.x])
IntExpr(1)
Union[builtins.int, builtins.str]))
[case testListTypeDoesNotGenerateAlias]
import typing
A = [int, str]
a = 1 # type: A # E: Variable "__main__.A" is not valid as a type
[case testCantUseStringLiteralAsTypeAlias]
from typing import Union
A = 'Union[int, str]'
a = 1 # type: A # E: Variable "__main__.A" is not valid as a type
[case testStringLiteralTypeAsAliasComponent]
from typing import Union
A = Union['int', str]
a = 1 # type: A
[out]
MypyFile:1(
ImportFrom:1(typing, [Union])
AssignmentStmt:2(
NameExpr(A* [__main__.A])
TypeAliasExpr(Union[builtins.int, builtins.str]))
AssignmentStmt:3(
NameExpr(a [__main__.a])
IntExpr(1)
Union[builtins.int, builtins.str]))
[case testComplexTypeAlias]
from typing import Union, Tuple, Any
A = Union['int', Tuple[int, Any]]
a = 1 # type: A
[out]
MypyFile:1(
ImportFrom:1(typing, [Union, Tuple, Any])
AssignmentStmt:2(
NameExpr(A* [__main__.A])
TypeAliasExpr(Union[builtins.int, Tuple[builtins.int, Any]]))
AssignmentStmt:3(
NameExpr(a [__main__.a])
IntExpr(1)
Union[builtins.int, Tuple[builtins.int, Any]]))