22
33from mypy .nodes import (
44 MypyFile , TypeInfo , FuncDef , ClassDef , Decorator , OverloadedFuncDef , MemberExpr , Var ,
5- Expression , ARG_STAR , ARG_STAR2
5+ Expression , SymbolNode , ARG_STAR , ARG_STAR2
66)
77from mypy .types import Type
88from mypy .build import Graph
@@ -63,13 +63,17 @@ def build_type_map(mapper: Mapper,
6363 # TODO: what else?
6464
6565
66+ def is_from_module (node : SymbolNode , module : MypyFile ) -> bool :
67+ return node .fullname == module .fullname + '.' + node .name
68+
69+
6670def load_type_map (mapper : 'Mapper' ,
6771 modules : List [MypyFile ],
6872 deser_ctx : DeserMaps ) -> None :
6973 """Populate a Mapper with deserialized IR from a list of modules."""
7074 for module in modules :
7175 for name , node in module .names .items ():
72- if isinstance (node .node , TypeInfo ):
76+ if isinstance (node .node , TypeInfo ) and is_from_module ( node . node , module ) :
7377 ir = deser_ctx .classes [node .node .fullname ]
7478 mapper .type_to_ir [node .node ] = ir
7579 mapper .func_to_decl [node .node ] = ir .ctor
@@ -86,7 +90,7 @@ def get_module_func_defs(module: MypyFile) -> Iterable[FuncDef]:
8690 # aliases. The best way to do this seems to be by
8791 # checking that the fullname matches.
8892 if (isinstance (node .node , (FuncDef , Decorator , OverloadedFuncDef ))
89- and node .fullname == module . fullname + '.' + name ):
93+ and is_from_module ( node .node , module ) ):
9094 yield get_func_def (node .node )
9195
9296
0 commit comments