Auto merge of #31716 - jseyfried:fix_privacy_for_def_err, r=nrc

Fixes #31714
This commit is contained in:
bors 2016-02-19 02:18:25 +00:00
commit 917db28b55
3 changed files with 9 additions and 1 deletions

View file

@ -1038,6 +1038,7 @@ fn is_public(&self) -> bool {
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()) }))
}

View file

@ -218,6 +218,8 @@ fn import_resolving_error(&self, e: ImportResolvingError<'b>) {
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);

View file

@ -15,5 +15,10 @@
mod zed {
pub fn bar() { println!("bar"); }
use foo; //~ ERROR unresolved import
}
fn main() {
zed::foo(); //~ ERROR unresolved name
bar();
}
fn main() { bar(); }