Skip to content

Commit 917db28

Browse files
committed
Auto merge of #31716 - jseyfried:fix_privacy_for_def_err, r=nrc
Fixes #31714
2 parents 8842e28 + 08b9097 commit 917db28

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

src/librustc_resolve/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,7 @@ impl<'a> NameBinding<'a> {
10381038

10391039
fn def_and_lp(&self) -> (Def, LastPrivate) {
10401040
let def = self.def().unwrap();
1041+
if let Def::Err = def { return (def, LastMod(AllPublic)) }
10411042
(def, LastMod(if self.is_public() { AllPublic } else { DependsOn(def.def_id()) }))
10421043
}
10431044

src/librustc_resolve/resolve_imports.rs

+2
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
218218
kind: NameBindingKind::Def(Def::Err),
219219
span: None,
220220
});
221+
let dummy_binding =
222+
self.resolver.new_name_binding(e.import_directive.import(dummy_binding));
221223

222224
let _ = e.source_module.try_define_child(target, ValueNS, dummy_binding);
223225
let _ = e.source_module.try_define_child(target, TypeNS, dummy_binding);

src/test/compile-fail/import.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,10 @@ use zed::baz;
1515

1616
mod zed {
1717
pub fn bar() { println!("bar"); }
18+
use foo; //~ ERROR unresolved import
19+
}
20+
21+
fn main() {
22+
zed::foo(); //~ ERROR unresolved name
23+
bar();
1824
}
19-
fn main() { bar(); }

0 commit comments

Comments
 (0)