diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-02-16 21:59:46 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-02-16 22:22:57 +0000 |
| commit | 1b5d2f21d65bcb9045d86dc952cadf2e52e6eb23 (patch) | |
| tree | bbd14adf3b5c49d0c87ad80a3a6082217a0ccf19 | |
| parent | 97842f54c9f98d0ed97eb4becad8906b9c1ba2da (diff) | |
| download | rust-1b5d2f21d65bcb9045d86dc952cadf2e52e6eb23.tar.gz rust-1b5d2f21d65bcb9045d86dc952cadf2e52e6eb23.zip | |
Don't compute LastPrivate data for Def::Err.
| -rw-r--r-- | src/librustc_resolve/lib.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/import.rs | 7 |
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(); } |
