Skip to content

Commit a244d78

Browse files
committed
Collapse visit_mod methods
1 parent 4e0cffb commit a244d78

File tree

1 file changed

+7
-37
lines changed

1 file changed

+7
-37
lines changed

src/modules.rs

Lines changed: 7 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)