about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_resolve/lib.rs7
-rw-r--r--src/librustc_resolve/resolve_imports.rs9
-rw-r--r--src/test/compile-fail/no-extern-crate-in-glob-import.rs22
3 files changed, 22 insertions, 16 deletions
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs
index b161d7f3330..361047df3e6 100644
--- a/src/librustc_resolve/lib.rs
+++ b/src/librustc_resolve/lib.rs
@@ -1037,13 +1037,6 @@ impl NameBindings {
         }
     }
 
-    fn create_from_module(module: Rc<Module>) -> NameBindings {
-        NameBindings {
-            type_ns: NameBinding::create_from_module(module),
-            value_ns: NameBinding::new(),
-        }
-    }
-
     /// Creates a new module in this set of name bindings.
     fn define_module(&self, module: Rc<Module>, sp: Span) {
         self.type_ns.set(NsDef::create_from_module(module, Some(sp)));
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs
index 4f67d6e2f7e..460c851e13f 100644
--- a/src/librustc_resolve/resolve_imports.rs
+++ b/src/librustc_resolve/resolve_imports.rs
@@ -853,15 +853,6 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
 
         }
 
-        // Add external module children from the containing module.
-        for (&name, module) in target_module.external_module_children.borrow().iter() {
-            self.merge_import_resolution(module_,
-                                         target_module.clone(),
-                                         import_directive,
-                                         name,
-                                         NameBindings::create_from_module(module.clone()));
-        }
-
         // Record the destination of this import
         if let Some(did) = target_module.def_id() {
             self.resolver.def_map.borrow_mut().insert(id,
diff --git a/src/test/compile-fail/no-extern-crate-in-glob-import.rs b/src/test/compile-fail/no-extern-crate-in-glob-import.rs
new file mode 100644
index 00000000000..5d3efd85134
--- /dev/null
+++ b/src/test/compile-fail/no-extern-crate-in-glob-import.rs
@@ -0,0 +1,22 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// Check that extern crate declarations are excluded from glob imports.
+
+#![feature(core)]
+extern crate core;
+
+mod T {
+    use super::*;
+}
+
+fn main() {
+    use T::core; //~ ERROR unresolved import `T::core`
+}