@@ -5928,8 +5928,7 @@ def visit_member_expr(self, expr: MemberExpr) -> None:
59285928 if isinstance (sym .node , PlaceholderNode ):
59295929 self .process_placeholder (expr .name , "attribute" , expr )
59305930 return
5931- if sym .node is not None :
5932- self .record_imported_symbol (sym .node )
5931+ self .record_imported_symbol (sym )
59335932 expr .kind = sym .kind
59345933 expr .fullname = sym .fullname or ""
59355934 expr .node = sym .node
@@ -5960,7 +5959,7 @@ def visit_member_expr(self, expr: MemberExpr) -> None:
59605959 if type_info :
59615960 n = type_info .names .get (expr .name )
59625961 if n is not None and isinstance (n .node , (MypyFile , TypeInfo , TypeAlias )):
5963- self .record_imported_symbol (n . node )
5962+ self .record_imported_symbol (n )
59645963 expr .kind = n .kind
59655964 expr .fullname = n .fullname or ""
59665965 expr .node = n .node
@@ -6282,14 +6281,17 @@ def lookup(
62826281 self , name : str , ctx : Context , suppress_errors : bool = False
62836282 ) -> SymbolTableNode | None :
62846283 node = self ._lookup (name , ctx , suppress_errors )
6285- if node is not None and node . node is not None :
6284+ if node is not None :
62866285 # This call is unfortunate from performance point of view, but
62876286 # needed for rare cases like e.g. testIncrementalChangingAlias.
6288- self .record_imported_symbol (node . node )
6287+ self .record_imported_symbol (node )
62896288 return node
62906289
6291- def record_imported_symbol (self , node : SymbolNode ) -> None :
6290+ def record_imported_symbol (self , sym : SymbolTableNode ) -> None :
62926291 """If the symbol was not defined in current module, add its module to module_refs."""
6292+ if sym .kind == LDEF or sym .node is None :
6293+ return
6294+ node = sym .node
62936295 if not node .fullname :
62946296 return
62956297 if isinstance (node , MypyFile ):
@@ -6519,8 +6521,8 @@ def lookup_qualified(
65196521 self .name_not_defined (name , ctx , namespace = namespace )
65206522 return None
65216523 sym = nextsym
6522- if sym is not None and sym . node is not None :
6523- self .record_imported_symbol (sym . node )
6524+ if sym is not None :
6525+ self .record_imported_symbol (sym )
65246526 return sym
65256527
65266528 def lookup_type_node (self , expr : Expression ) -> SymbolTableNode | None :
0 commit comments