@@ -135,7 +135,7 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
135135
136136 // Skip visiting sub modules when the input is from stdin.
137137 if self . recursive {
138- self . visit_mod_from_ast ( & krate. items ) ?;
138+ self . visit_mod ( & krate. items , true ) ?;
139139 }
140140
141141 let snippet_provider = self . parse_sess . snippet_provider ( krate. spans . inner_span ) ;
@@ -171,32 +171,10 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
171171 Ok ( ( ) )
172172 }
173173
174- /// Visit modules defined inside macro calls.
175- fn visit_mod_outside_ast (
176- & mut self ,
177- items : & [ rustc_ast:: ptr:: P < ast:: Item > ] ,
178- ) -> Result < ( ) , ModuleResolutionError > {
179- for item in items {
180- if is_cfg_if ( item) {
181- self . visit_cfg_if ( item) ?;
182- continue ;
183- }
184-
185- if let ast:: ItemKind :: Mod ( _, ref sub_mod_kind) = item. kind {
186- let items = match sub_mod_kind {
187- ast:: ModKind :: Loaded ( items, ..) => Cow :: Borrowed ( items) ,
188- _ => Cow :: Owned ( ThinVec :: new ( ) ) ,
189- } ;
190- self . visit_sub_mod ( & item, Module :: new ( item. span , items, & [ ] ) , false ) ?;
191- }
192- }
193- Ok ( ( ) )
194- }
195-
196- /// Visit modules from AST.
197- fn visit_mod_from_ast (
174+ fn visit_mod (
198175 & mut self ,
199176 items : & [ rustc_ast:: ptr:: P < ast:: Item > ] ,
177+ from_ast : bool ,
200178 ) -> Result < ( ) , ModuleResolutionError > {
201179 for item in items {
202180 if is_cfg_if ( item) {
@@ -208,7 +186,7 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
208186 ast:: ModKind :: Loaded ( items, ..) => Cow :: Borrowed ( items) ,
209187 _ => Cow :: Owned ( ThinVec :: new ( ) ) ,
210188 } ;
211- self . visit_sub_mod ( item, Module :: new ( item. span , items, & [ ] ) , true ) ?;
189+ self . visit_sub_mod ( & item, Module :: new ( item. span , items, & [ ] ) , from_ast ) ?;
212190 }
213191 }
214192 Ok ( ( ) )
@@ -282,27 +260,19 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
282260 path : mod_path. parent ( ) . unwrap ( ) . to_path_buf ( ) ,
283261 ownership : directory_ownership,
284262 } ;
285- self . with_directory ( directory, |this| this. visit_mod_outside_ast ( & sub_mod. items ) ) ?;
263+ self . with_directory ( directory, |this| this. visit_mod ( & sub_mod. items , false ) ) ?;
286264 }
287265 SubModKind :: Internal ( item) => {
288266 let directory = self . inline_mod_directory ( item. ident , & item. attrs ) ;
289- self . with_directory ( directory, |this| {
290- if from_ast {
291- this. visit_mod_from_ast ( & sub_mod. items )
292- } else {
293- this. visit_mod_outside_ast ( & sub_mod. items )
294- }
295- } ) ?;
267+ self . with_directory ( directory, |this| this. visit_mod ( & sub_mod. items , from_ast) ) ?;
296268 }
297269 SubModKind :: MultiExternal ( mods) => {
298270 for ( mod_path, directory_ownership, sub_mod) in mods {
299271 let directory = Directory {
300272 path : mod_path. parent ( ) . unwrap ( ) . to_path_buf ( ) ,
301273 ownership : directory_ownership,
302274 } ;
303- self . with_directory ( directory, |this| {
304- this. visit_mod_outside_ast ( & sub_mod. items )
305- } ) ?;
275+ self . with_directory ( directory, |this| this. visit_mod ( & sub_mod. items , false ) ) ?;
306276 }
307277 }
308278 }
0 commit comments