Basic support for TypeAlias, fixes #1969

This commit is contained in:
Dave Halter
2026-05-01 13:05:22 +02:00
parent 590ed56c6e
commit f8fb2d1230
2 changed files with 22 additions and 2 deletions
+5 -2
View File
@@ -703,9 +703,12 @@ def tree_name_to_values(inference_state, context, tree_name):
if expr_stmt.type == "expr_stmt" and expr_stmt.children[1].type == "annassign":
correct_scope = parser_utils.get_parent_scope(name) == context.tree_node
ann_assign = expr_stmt.children[1]
if correct_scope:
first = ann_assign.children[1]
code = first.get_code()
if correct_scope and not (code.endswith(".TypeAlias")
or code.strip() == "TypeAlias"):
if (
(ann_assign.children[1].type == 'name')
(first.type == 'name')
and (ann_assign.children[1].value == tree_name.value)
and context.parent_context
):
+17
View File
@@ -587,3 +587,20 @@ b.add_x(2).add_y(5)
b.add_x(2).add_not_implemented(5)
#? Builder()
b.add_x(2).add_not_implemented_typing_extensions(5)
# -----------------
# TypeAlias (see also #1969)
# -----------------
from typing import TypeAlias
IntX: typing.TypeAlias = int
IntY: TypeAlias = int
#? int
IntX
def f(x: IntX, y: IntY):
#? int()
x
#? int()
y