Skip to content

Commit 7538a64

Browse files
committed
Refactor
1 parent 0621dc2 commit 7538a64

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

mypy/semanal.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6330,23 +6330,20 @@ class C:
63306330
or not self.is_defined_in_current_module(node.fullname)
63316331
):
63326332
return True
6333-
if (
6334-
isinstance(node, (TypeInfo, TypeAlias))
6335-
or isinstance(node, PlaceholderNode)
6336-
and node.becomes_typeinfo
6337-
):
6333+
if self.is_type_like(node):
63386334
# Allow forward references to classes/type aliases (see docstring), but
63396335
# a forward reference should never shadow an existing regular reference.
63406336
if node.name not in self.globals:
63416337
return True
63426338
global_node = self.globals[node.name]
6343-
return (
6344-
isinstance(global_node.node, (TypeInfo, TypeAlias))
6345-
or isinstance(global_node.node, PlaceholderNode)
6346-
and global_node.node.becomes_typeinfo
6347-
)
6339+
return not self.is_type_like(global_node.node)
63486340
return False
63496341

6342+
def is_type_like(self, node: SymbolNode | None) -> bool:
6343+
return isinstance(node, (TypeInfo, TypeAlias)) or (
6344+
isinstance(node, PlaceholderNode) and node.becomes_typeinfo
6345+
)
6346+
63506347
def is_textually_before_statement(self, node: SymbolNode) -> bool:
63516348
"""Check if a node is defined textually before the current statement
63526349

0 commit comments

Comments
 (0)