about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCorey Richardson <corey@octayn.net>2013-05-14 14:19:59 -0400
committerCorey Richardson <corey@octayn.net>2013-05-14 18:52:31 -0400
commit62cbea1ca1441a7d9c97d3c2aa36f9fa546ad9a4 (patch)
tree0e7af780d37af4bc2c8ca492984c57e9aecdc1e8
parent52f8b22d4f304abd6227f1476396b0a3a94e241f (diff)
downloadrust-62cbea1ca1441a7d9c97d3c2aa36f9fa546ad9a4.tar.gz
rust-62cbea1ca1441a7d9c97d3c2aa36f9fa546ad9a4.zip
Add span to some import resolution errors
-rw-r--r--src/librustc/middle/resolve.rs18
-rw-r--r--src/test/compile-fail/unresolved-import.rs6
2 files changed, 13 insertions, 11 deletions
diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs
index 95b8281d4b2..90a153996dc 100644
--- a/src/librustc/middle/resolve.rs
+++ b/src/librustc/middle/resolve.rs
@@ -2058,7 +2058,8 @@ pub impl Resolver {
                             self.resolve_single_import(module_,
                                                        containing_module,
                                                        target,
-                                                       source);
+                                                       source,
+                                                       span);
                     }
                     GlobImport => {
                         let span = import_directive.span;
@@ -2121,7 +2122,8 @@ pub impl Resolver {
                              module_: @mut Module,
                              containing_module: @mut Module,
                              target: ident,
-                             source: ident)
+                             source: ident,
+                             span: span)
                           -> ResolveResult<()> {
         debug!("(resolving single import) resolving `%s` = `%s::%s` from \
                 `%s`",
@@ -2325,14 +2327,14 @@ pub impl Resolver {
         }
 
         if resolve_fail {
-            self.session.err(fmt!("unresolved import: there is no `%s` in `%s`",
-                                  *self.session.str_of(source),
-                                  self.module_to_str(containing_module)));
+            self.session.span_err(span, fmt!("unresolved import: there is no `%s` in `%s`",
+                                             *self.session.str_of(source),
+                                             self.module_to_str(containing_module)));
             return Failed;
         } else if priv_fail {
-            self.session.err(fmt!("unresolved import: found `%s` in `%s` but it is private",
-                                  *self.session.str_of(source),
-                                  self.module_to_str(containing_module)));
+            self.session.span_err(span, fmt!("unresolved import: found `%s` in `%s` but it is \
+                                             private", *self.session.str_of(source),
+                                             self.module_to_str(containing_module)));
             return Failed;
         }
 
diff --git a/src/test/compile-fail/unresolved-import.rs b/src/test/compile-fail/unresolved-import.rs
index 9c5ff311b0d..fc69c34c118 100644
--- a/src/test/compile-fail/unresolved-import.rs
+++ b/src/test/compile-fail/unresolved-import.rs
@@ -9,9 +9,9 @@
 // except according to those terms.
 
 use foo::bar; //~ ERROR unresolved import. maybe a missing `extern mod foo`?
-              //~^ ERROR failed to resolve import
-use x = bar::baz; //~ ERROR unresolved import: could not find `baz` in `bar`
-                  //~^ ERROR failed to resolve import
+              //~^ ERROR failed to resolve import `foo::bar`
+use x = bar::baz; //~ ERROR unresolved import: there is no `baz` in `bar`
+                  //~^ ERROR failed to resolve import `bar::baz`
 
 mod bar {
     struct bar;