Skip to content

Commit 513e955

Browse files
committed
Add field dummy_binding to Resolver.
1 parent 95528d1 commit 513e955

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

src/librustc_resolve/lib.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ use syntax::ast::{Item, ItemKind, ImplItem, ImplItemKind};
6565
use syntax::ast::{Local, Mutability, Pat, PatKind, Path};
6666
use syntax::ast::{PathSegment, PathParameters, QSelf, TraitItemKind, TraitRef, Ty, TyKind};
6767

68-
use syntax_pos::Span;
68+
use syntax_pos::{Span, DUMMY_SP};
6969
use errors::DiagnosticBuilder;
7070

7171
use std::cell::{Cell, RefCell};
@@ -1052,6 +1052,7 @@ pub struct Resolver<'a> {
10521052
privacy_errors: Vec<PrivacyError<'a>>,
10531053

10541054
arenas: &'a ResolverArenas<'a>,
1055+
dummy_binding: &'a NameBinding<'a>,
10551056
}
10561057

10571058
pub struct ResolverArenas<'a> {
@@ -1203,6 +1204,11 @@ impl<'a> Resolver<'a> {
12031204
privacy_errors: Vec::new(),
12041205

12051206
arenas: arenas,
1207+
dummy_binding: arenas.alloc_name_binding(NameBinding {
1208+
kind: NameBindingKind::Def(Def::Err),
1209+
span: DUMMY_SP,
1210+
vis: ty::Visibility::Public,
1211+
}),
12061212
}
12071213
}
12081214

src/librustc_resolve/resolve_imports.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use rustc::hir::def::*;
2727

2828
use syntax::ast::{NodeId, Name};
2929
use syntax::util::lev_distance::find_best_match_for_name;
30-
use syntax_pos::{Span, DUMMY_SP};
30+
use syntax_pos::Span;
3131

3232
use std::cell::{Cell, RefCell};
3333

@@ -442,13 +442,8 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> {
442442
// failed resolution
443443
fn import_dummy_binding(&mut self, directive: &'b ImportDirective<'b>) {
444444
if let SingleImport { target, .. } = directive.subclass {
445-
let dummy_binding = self.arenas.alloc_name_binding(NameBinding {
446-
kind: NameBindingKind::Def(Def::Err),
447-
span: DUMMY_SP,
448-
vis: ty::Visibility::Public,
449-
});
445+
let dummy_binding = self.dummy_binding;
450446
let dummy_binding = self.import(dummy_binding, directive);
451-
452447
let _ = self.try_define(directive.parent, target, ValueNS, dummy_binding.clone());
453448
let _ = self.try_define(directive.parent, target, TypeNS, dummy_binding);
454449
}

0 commit comments

Comments
 (0)