Skip to content

Commit 7ab29a2

Browse files
committed
Store TypeAlias node in TypeAliasStmt
1 parent 25e0c13 commit 7ab29a2

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

mypy/checker.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5376,9 +5376,8 @@ def remove_capture_conflicts(self, type_map: TypeMap, inferred_types: dict[Var,
53765376
del type_map[expr]
53775377

53785378
def visit_type_alias_stmt(self, o: TypeAliasStmt) -> None:
5379-
sym = self.lookup_qualified(o.name.fullname)
5380-
if isinstance(sym.node, TypeAlias):
5381-
self.check_typevar_defaults(sym.node.alias_tvars)
5379+
if o.alias_node:
5380+
self.check_typevar_defaults(o.alias_node.alias_tvars)
53825381

53835382
with self.msg.filter_errors():
53845383
self.expr_checker.accept(o.value)

mypy/nodes.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1659,21 +1659,23 @@ def accept(self, visitor: StatementVisitor[T]) -> T:
16591659

16601660

16611661
class TypeAliasStmt(Statement):
1662-
__slots__ = ("name", "type_args", "value", "invalid_recursive_alias")
1662+
__slots__ = ("name", "type_args", "value", "invalid_recursive_alias", "alias_node")
16631663

16641664
__match_args__ = ("name", "type_args", "value")
16651665

16661666
name: NameExpr
16671667
type_args: list[TypeParam]
16681668
value: LambdaExpr # Return value will get translated into a type
16691669
invalid_recursive_alias: bool
1670+
alias_node: TypeAlias | None
16701671

16711672
def __init__(self, name: NameExpr, type_args: list[TypeParam], value: LambdaExpr) -> None:
16721673
super().__init__()
16731674
self.name = name
16741675
self.type_args = type_args
16751676
self.value = value
16761677
self.invalid_recursive_alias = False
1678+
self.alias_node = None
16771679

16781680
def accept(self, visitor: StatementVisitor[T]) -> T:
16791681
return visitor.visit_type_alias_stmt(self)

mypy/semanal.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5535,6 +5535,7 @@ def visit_type_alias_stmt(self, s: TypeAliasStmt) -> None:
55355535
eager=eager,
55365536
python_3_12_type_alias=True,
55375537
)
5538+
s.alias_node = alias_node
55385539

55395540
if (
55405541
existing

0 commit comments

Comments
 (0)