diff options
| author | bors <bors@rust-lang.org> | 2016-02-19 02:18:25 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-02-19 02:18:25 +0000 |
| commit | 917db28b555ca0038cb95b535909fea0c904c230 (patch) | |
| tree | 96ba7876ea8bf2a597341906e64eb33667cf822f | |
| parent | 8842e28be8857e8e37591e2dec469d6720c278cb (diff) | |
| parent | 08b909719790e40f7feaab4b314893d178e892ea (diff) | |
| download | rust-917db28b555ca0038cb95b535909fea0c904c230.tar.gz rust-917db28b555ca0038cb95b535909fea0c904c230.zip | |
Auto merge of #31716 - jseyfried:fix_privacy_for_def_err, r=nrc
Fixes #31714
| -rw-r--r-- | src/librustc_resolve/lib.rs | 1 | ||||
| -rw-r--r-- | src/librustc_resolve/resolve_imports.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/import.rs | 7 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 49040a4c732..7dfb79d820a 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -1038,6 +1038,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/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs index 1253d4f9cef..ce56f484b02 100644 --- a/src/librustc_resolve/resolve_imports.rs +++ b/src/librustc_resolve/resolve_imports.rs @@ -218,6 +218,8 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> { kind: NameBindingKind::Def(Def::Err), span: None, }); + let dummy_binding = + self.resolver.new_name_binding(e.import_directive.import(dummy_binding)); let _ = e.source_module.try_define_child(target, ValueNS, dummy_binding); let _ = e.source_module.try_define_child(target, TypeNS, dummy_binding); diff --git a/src/test/compile-fail/import.rs b/src/test/compile-fail/import.rs index 86c4ce8b038..ff93cd0f066 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(); //~ ERROR unresolved name + bar(); } -fn main() { bar(); } |
