Skip to content

Commit e8558a6

Browse files
committed
update tests: PEP 613 aliases are not deferred
1 parent fea8f12 commit e8558a6

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

crates/ty_python_semantic/resources/mdtest/pep613_type_aliases.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,21 @@ f(1)
6363
f("foo")
6464
```
6565

66+
### Name resolution is not deferred
67+
68+
Unlike with a PEP 695 type alias, the right-hand side of a PEP 613 type alias is evaluated
69+
immediately, name resolution is not deferred.
70+
71+
```py
72+
from typing import TypeAlias
73+
74+
A: TypeAlias = B | None # error: [unresolved-reference]
75+
B: TypeAlias = int
76+
77+
def _(a: A):
78+
reveal_type(a) # revealed: Unknown | None
79+
```
80+
6681
## Multiple layers of union aliases
6782

6883
```py
@@ -149,7 +164,7 @@ class B(A[Alias]):
149164
```py
150165
from typing import TypeAlias
151166

152-
A: TypeAlias = tuple[B] | None
167+
A: TypeAlias = tuple["B"] | None
153168
B: TypeAlias = tuple[A] | None
154169

155170
def f(x: A):
@@ -173,7 +188,7 @@ def h(x: Intersection[A, B]):
173188
```py
174189
from typing import Callable, TypeAlias
175190

176-
C: TypeAlias = Callable[[], C | None]
191+
C: TypeAlias = Callable[[], "C" | None]
177192

178193
def _(x: C):
179194
reveal_type(x) # revealed: () -> C | None

0 commit comments

Comments
 (0)