@@ -135,7 +135,7 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
135
135
136
136
// Skip visiting sub modules when the input is from stdin.
137
137
if self . recursive {
138
- self . visit_mod_from_ast ( & krate. items ) ?;
138
+ self . visit_mod ( & krate. items , true ) ?;
139
139
}
140
140
141
141
let snippet_provider = self . parse_sess . snippet_provider ( krate. spans . inner_span ) ;
@@ -171,32 +171,10 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
171
171
Ok ( ( ) )
172
172
}
173
173
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 (
198
175
& mut self ,
199
176
items : & [ rustc_ast:: ptr:: P < ast:: Item > ] ,
177
+ from_ast : bool ,
200
178
) -> Result < ( ) , ModuleResolutionError > {
201
179
for item in items {
202
180
if is_cfg_if ( item) {
@@ -208,7 +186,7 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
208
186
ast:: ModKind :: Loaded ( items, ..) => Cow :: Borrowed ( items) ,
209
187
_ => Cow :: Owned ( ThinVec :: new ( ) ) ,
210
188
} ;
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 ) ?;
212
190
}
213
191
}
214
192
Ok ( ( ) )
@@ -282,27 +260,19 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
282
260
path : mod_path. parent ( ) . unwrap ( ) . to_path_buf ( ) ,
283
261
ownership : directory_ownership,
284
262
} ;
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 ) ) ?;
286
264
}
287
265
SubModKind :: Internal ( item) => {
288
266
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) ) ?;
296
268
}
297
269
SubModKind :: MultiExternal ( mods) => {
298
270
for ( mod_path, directory_ownership, sub_mod) in mods {
299
271
let directory = Directory {
300
272
path : mod_path. parent ( ) . unwrap ( ) . to_path_buf ( ) ,
301
273
ownership : directory_ownership,
302
274
} ;
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 ) ) ?;
306
276
}
307
277
}
308
278
}
0 commit comments