about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-02-16 21:59:46 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-02-16 22:22:57 +0000
commit1b5d2f21d65bcb9045d86dc952cadf2e52e6eb23 (patch)
treebbd14adf3b5c49d0c87ad80a3a6082217a0ccf19
parent97842f54c9f98d0ed97eb4becad8906b9c1ba2da (diff)
downloadrust-1b5d2f21d65bcb9045d86dc952cadf2e52e6eb23.tar.gz
rust-1b5d2f21d65bcb9045d86dc952cadf2e52e6eb23.zip
Don't compute LastPrivate data for Def::Err.
-rw-r--r--src/librustc_resolve/lib.rs1
-rw-r--r--src/test/compile-fail/import.rs7
2 files changed, 7 insertions, 1 deletions
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs
index f0e4d7578e3..52580678c3f 100644
--- a/src/librustc_resolve/lib.rs
+++ b/src/librustc_resolve/lib.rs
@@ -1047,6 +1047,7 @@ impl<'a> NameBinding<'a> {
 
     fn def_and_lp(&self) -> (Def, LastPrivate) {
         let def = self.def().unwrap();
+        if let Def::Err = def { return (def, LastMod(AllPublic)) }
         (def, LastMod(if self.is_public() { AllPublic } else { DependsOn(def.def_id()) }))
     }
 
diff --git a/src/test/compile-fail/import.rs b/src/test/compile-fail/import.rs
index 86c4ce8b038..390bba23580 100644
--- a/src/test/compile-fail/import.rs
+++ b/src/test/compile-fail/import.rs
@@ -15,5 +15,10 @@ use zed::baz;
 
 mod zed {
     pub fn bar() { println!("bar"); }
+    use foo; //~ ERROR unresolved import
+}
+
+fn main() {
+    zed::foo(); // Check that this does not panic. Ideally, it would be a privacy error.
+    bar();
 }
-fn main() { bar(); }