@@ -100,7 +100,7 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
100100 visitor. visit_item ( & item) ;
101101 for module_item in visitor. mods ( ) {
102102 if let ast:: ItemKind :: Mod ( ref sub_mod) = module_item. item . node {
103- self . visit_mod_inner ( & item, Cow :: Owned ( sub_mod. clone ( ) ) ) ?;
103+ self . visit_mod_from_mac_inner ( & item, Cow :: Owned ( sub_mod. clone ( ) ) ) ?;
104104 }
105105 }
106106 Ok ( ( ) )
@@ -114,13 +114,13 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
114114 }
115115
116116 if let ast:: ItemKind :: Mod ( ref sub_mod) = item. node {
117- self . visit_mod_inner ( item, Cow :: Owned ( sub_mod. clone ( ) ) ) ?;
117+ self . visit_mod_from_mac_inner ( item, Cow :: Owned ( sub_mod. clone ( ) ) ) ?;
118118 }
119119 }
120120 Ok ( ( ) )
121121 }
122122
123- fn visit_mod_inner (
123+ fn visit_mod_from_mac_inner (
124124 & mut self ,
125125 item : & ' c ast:: Item ,
126126 sub_mod : Cow < ' ast , ast:: Mod > ,
@@ -140,7 +140,10 @@ impl<'ast, 'sess, 'c> ModResolver<'ast, 'sess> {
140140 }
141141
142142 if let ast:: ItemKind :: Mod ( ref sub_mod) = item. node {
143- self . visit_mod_inner ( item, Cow :: Borrowed ( sub_mod) ) ?;
143+ let old_directory = self . directory . clone ( ) ;
144+ self . visit_sub_mod ( item, & Cow :: Borrowed ( sub_mod) ) ?;
145+ self . visit_mod_from_ast ( sub_mod) ?;
146+ self . directory = old_directory;
144147 }
145148 }
146149 Ok ( ( ) )
0 commit comments