about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTheo Belaire <theo.belaire@gmail.com>2015-04-25 15:45:29 -0400
committerTheo Belaire <theo.belaire@gmail.com>2015-04-25 15:45:29 -0400
commit5c05278fecf9b7d4ff64fe374fb5b4598908d064 (patch)
tree0aeed6334fa752b02eb2a44130f50f6f747ea9ba
parent69a5c379dfbfdb17319eab061bef554845eca407 (diff)
downloadrust-5c05278fecf9b7d4ff64fe374fb5b4598908d064.tar.gz
rust-5c05278fecf9b7d4ff64fe374fb5b4598908d064.zip
Fixed types, and slimmed down code
I don't this we need to print the definition of the
imported value too, though it's quite possible.
-rw-r--r--src/librustc_resolve/resolve_imports.rs16
-rw-r--r--src/test/compile-fail/double-import.rs8
2 files changed, 8 insertions, 16 deletions
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs
index 10068cf373e..e731e8a5ce2 100644
--- a/src/librustc_resolve/resolve_imports.rs
+++ b/src/librustc_resolve/resolve_imports.rs
@@ -897,6 +897,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
         match target {
             Some(ref target) if target.shadowable != Shadowable::Always => {
                 use syntax::ast_map::NodeItem;
+
                 let ns_word = match namespace {
                     TypeNS => "type",
                     ValueNS => "value",
@@ -907,19 +908,10 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
                                   &token::get_name(name));
                 let use_id = import_resolution.id(namespace);
                 if let NodeItem(item) = self.resolver.ast_map.get(use_id) {
-                    // Assert item.node is ItemUse
-                    // I feel like this should maybe mention the type,
-                    // as it's otherwise a bit of work to look up...
-                    // use syntax::ast::Item;
+                    // item is syntax::ast::Item;
                     span_note!(self.resolver.session, item.span,
-                               "Previously import of {} `{}` here",
-                               ns_word, token::get_name(name));
-                }
-                // Also showing the definition is reasonable?
-                if let Some(sp) = target.bindings.span_for_namespace(namespace) {
-                    span_note!(self.resolver.session, sp,
-                               "definition of {} `{}` here",
-                               ns_word, token::get_name(name));
+                               "previous import of `{}` here",
+                               token::get_name(name));
                 }
             }
             Some(_) | None => {}
diff --git a/src/test/compile-fail/double-import.rs b/src/test/compile-fail/double-import.rs
index 3d0158a0830..d267efe8b25 100644
--- a/src/test/compile-fail/double-import.rs
+++ b/src/test/compile-fail/double-import.rs
@@ -12,14 +12,14 @@
 
 
 mod sub1 {
-    fn foo() {} // Implementation 1
+    fn foo() {} // implementation 1
 }
 
 mod sub2 {
-    fn foo() {} // Implementation 2
+    fn foo() {} // implementation 2
 }
 
-use sub1::foo; //~ NOTE first imported here
-use sub2::foo; //~ ERROR a value named `foo` has already been imported in this module [E0252]
+use sub1::foo; //~ note previous import of `foo` here
+use sub2::foo; //~ error a value named `foo` has already been imported in this module [e0252]
 
 fn main() {}