From b085b51357769acb68f6ba10d30df5a98e04c418 Mon Sep 17 00:00:00 2001 From: Corey Richardson Date: Fri, 26 Apr 2013 04:59:28 -0400 Subject: [PATCH 1/2] 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. --- src/librustc/middle/resolve.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 83db3a408eaf8..19ea607f8a078 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. From 8dd9dc995efde11130042c942cb9d4de0bcc5a29 Mon Sep 17 00:00:00 2001 From: Corey Richardson Date: Fri, 26 Apr 2013 05:28:43 -0400 Subject: [PATCH 2/2] add comment --- src/librustc/middle/resolve.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 19ea607f8a078..ff9bf4e03eb3a 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -3001,7 +3001,7 @@ pub impl Resolver { 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)); + sn.slice(0, sn.len() - 1)); // -1 to adjust for semicolon self.session.span_err(imports[index].span, err); } }