about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCorey Richardson <corey@octayn.net>2013-04-26 04:59:28 -0400
committerCorey Richardson <corey@octayn.net>2013-04-26 04:59:28 -0400
commitb085b51357769acb68f6ba10d30df5a98e04c418 (patch)
tree7aa75a7f2eab6d932d258600367bde7dd8ab2865
parent0604468fd540b4356ba28bf9a6d26b56b73d5b3b (diff)
downloadrust-b085b51357769acb68f6ba10d30df5a98e04c418.tar.gz
rust-b085b51357769acb68f6ba10d30df5a98e04c418.zip
Offer a hint on some unresolved imports
I didn't know how to use "use" initially, and an error message like this would
have solved quite a bit of frustration. I think this properly handles cases
where it's not appropriate but I'm not sure.
-rw-r--r--src/librustc/middle/resolve.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs
index 83db3a408ea..19ea607f8a0 100644
--- a/src/librustc/middle/resolve.rs
+++ b/src/librustc/middle/resolve.rs
@@ -2996,7 +2996,14 @@ pub impl Resolver {
         let imports: &mut ~[@ImportDirective] = &mut *module_.imports;
         let import_count = imports.len();
         if index != import_count {
-            self.session.span_err(imports[index].span, ~"unresolved import");
+            let sn = self.session.codemap.span_to_snippet(imports[index].span);
+            if str::contains(sn, "::") {
+                self.session.span_err(imports[index].span, ~"unresolved import");
+            } else {
+                let err = fmt!("unresolved import (maybe you meant `%s::*`?)",
+                               sn.slice(0, sn.len() - 1));
+                self.session.span_err(imports[index].span, err);
+            }
         }
 
         // Descend into children and anonymous children.