Skip to content

Commit

Permalink
Make non-found module name optional
Browse files Browse the repository at this point in the history
No longer uses a magic string for missing or root module.
  • Loading branch information
dominikWin committed Jan 16, 2018
1 parent da569fa commit 1dcfd14
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
8 changes: 4 additions & 4 deletions src/librustc_resolve/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4062,7 +4062,7 @@ fn show_candidates(err: &mut DiagnosticBuilder,
}

/// A somewhat inefficient routine to obtain the name of a module.
fn module_to_string(module: Module) -> String {
fn module_to_string(module: Module) -> Option<String> {
let mut names = Vec::new();

fn collect_mod(names: &mut Vec<Ident>, module: Module) {
Expand All @@ -4080,12 +4080,12 @@ fn module_to_string(module: Module) -> String {
collect_mod(&mut names, module);

if names.is_empty() {
return "???".to_string();
return None;
}
names_to_string(&names.into_iter()
Some(names_to_string(&names.into_iter()
.rev()
.map(|n| dummy_spanned(n))
.collect::<Vec<_>>())
.collect::<Vec<_>>()))
}

fn err_path_resolution() -> PathResolution {
Expand Down
8 changes: 4 additions & 4 deletions src/librustc_resolve/resolve_imports.rs
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,7 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> {
fn resolve_import(&mut self, directive: &'b ImportDirective<'b>) -> bool {
debug!("(resolving import for module) resolving import `{}::...` in `{}`",
names_to_string(&directive.module_path[..]),
module_to_string(self.current_module));
module_to_string(self.current_module).unwrap_or("???".to_string()));

self.current_module = directive.parent;

Expand Down Expand Up @@ -773,10 +773,10 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> {
None => "".to_owned(),
};
let module_str = module_to_string(module);
let msg = if &module_str == "???" {
format!("no `{}` in the root{}", ident, lev_suggestion)
} else {
let msg = if let Some(module_str) = module_str {
format!("no `{}` in `{}`{}", ident, module_str, lev_suggestion)
} else {
format!("no `{}` in the root{}", ident, lev_suggestion)
};
Some((span, msg))
} else {
Expand Down

0 comments on commit 1dcfd14

Please sign in to comment.