@@ -737,16 +737,22 @@ def bind_class_type_variables_in_symbol_table(
737737
738738 def visit_import (self , i : Import ) -> None :
739739 for id , as_id in i .ids :
740- if as_id is not None and as_id != id :
741- self .add_module_symbol (id , as_id , i )
740+ if as_id is not None :
741+ self .add_module_symbol (id , as_id , module_public = True , context = i )
742742 else :
743+ # Modules imported in a stub file without using 'as x' won't get exported when
744+ # doing 'from m import *'.
745+ module_public = not self .is_stub_file
743746 base = id .split ('.' )[0 ]
744- self .add_module_symbol (base , base , i )
747+ self .add_module_symbol (base , base , module_public = module_public ,
748+ context = i )
745749
746- def add_module_symbol (self , id : str , as_id : str , context : Context ) -> None :
750+ def add_module_symbol (self , id : str , as_id : str , module_public : bool ,
751+ context : Context ) -> None :
747752 if id in self .modules :
748753 m = self .modules [id ]
749- self .add_symbol (as_id , SymbolTableNode (MODULE_REF , m , self .cur_mod_id ), context )
754+ self .add_symbol (as_id , SymbolTableNode (MODULE_REF , m , self .cur_mod_id ,
755+ module_public = module_public ), context )
750756 else :
751757 self .add_unknown_symbol (as_id , context )
752758
0 commit comments