Skip to content

Commit eb23a15

Browse files
committed
Collapse visit_mod methods
1 parent 9cd3ec6 commit eb23a15

File tree

1 file changed

+8
-38
lines changed

1 file changed

+8
-38
lines changed

src/modules.rs

Lines changed: 8 additions & 38 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);
@@ -155,36 +155,14 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
155155
fn visit_cfg_if(&mut self, item: &ast::Item) -> Result<(), ModuleResolutionError> {
156156
let mut visitor = visitor::CfgIfVisitor::new(self.parse_sess);
157157
visitor.visit_item(item);
158-
self.visit_mod_outside_ast(&visitor.items)?;
158+
self.visit_mod(&visitor.items, false)?;
159159
Ok(())
160160
}
161161

162-
/// Visit modules defined inside macro calls.
163-
fn visit_mod_outside_ast(
164-
&mut self,
165-
items: &[rustc_ast::ptr::P<ast::Item>],
166-
) -> Result<(), ModuleResolutionError> {
167-
for item in items {
168-
if is_cfg_if(item) {
169-
self.visit_cfg_if(item)?;
170-
continue;
171-
}
172-
173-
if let ast::ItemKind::Mod(_, ref sub_mod_kind) = item.kind {
174-
let items = match sub_mod_kind {
175-
ast::ModKind::Loaded(items, ..) => Cow::Borrowed(items),
176-
_ => Cow::Owned(ThinVec::new()),
177-
};
178-
self.visit_sub_mod(&item, Module::new(item.span, items, &[]), false)?;
179-
}
180-
}
181-
Ok(())
182-
}
183-
184-
/// Visit modules from AST.
185-
fn visit_mod_from_ast(
162+
fn visit_mod(
186163
&mut self,
187164
items: &[rustc_ast::ptr::P<ast::Item>],
165+
from_ast: bool,
188166
) -> Result<(), ModuleResolutionError> {
189167
for item in items {
190168
if is_cfg_if(item) {
@@ -196,7 +174,7 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
196174
ast::ModKind::Loaded(items, ..) => Cow::Borrowed(items),
197175
_ => Cow::Owned(ThinVec::new()),
198176
};
199-
self.visit_sub_mod(item, Module::new(item.span, items, &[]), true)?;
177+
self.visit_sub_mod(&item, Module::new(item.span, items, &[]), from_ast)?;
200178
}
201179
}
202180
Ok(())
@@ -270,27 +248,19 @@ impl<'ast, 'sess> ModResolver<'ast, 'sess> {
270248
path: mod_path.parent().unwrap().to_path_buf(),
271249
ownership: directory_ownership,
272250
};
273-
self.with_directory(directory, |this| this.visit_mod_outside_ast(&sub_mod.items))?;
251+
self.with_directory(directory, |this| this.visit_mod(&sub_mod.items, false))?;
274252
}
275253
SubModKind::Internal(item) => {
276254
let directory = self.inline_mod_directory(item.ident, &item.attrs);
277-
self.with_directory(directory, |this| {
278-
if from_ast {
279-
this.visit_mod_from_ast(&sub_mod.items)
280-
} else {
281-
this.visit_mod_outside_ast(&sub_mod.items)
282-
}
283-
})?;
255+
self.with_directory(directory, |this| this.visit_mod(&sub_mod.items, from_ast))?;
284256
}
285257
SubModKind::MultiExternal(mods) => {
286258
for (mod_path, directory_ownership, sub_mod) in mods {
287259
let directory = Directory {
288260
path: mod_path.parent().unwrap().to_path_buf(),
289261
ownership: directory_ownership,
290262
};
291-
self.with_directory(directory, |this| {
292-
this.visit_mod_outside_ast(&sub_mod.items)
293-
})?;
263+
self.with_directory(directory, |this| this.visit_mod(&sub_mod.items, false))?;
294264
}
295265
}
296266
}

0 commit comments

Comments
 (0)