Skip to content

Commit d1f8ea4

Browse files
committed
resolve: Pre-intern tool module bindings
1 parent 05010b6 commit d1f8ea4

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

compiler/rustc_resolve/src/ident.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,8 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
572572
)),
573573
}
574574
}
575-
Scope::ToolPrelude => match this.registered_tools.get(&ident).cloned() {
576-
Some(ident) => ok(Res::ToolMod, ident.span, this.arenas),
575+
Scope::ToolPrelude => match this.registered_tool_bindings.get(&ident) {
576+
Some(binding) => Ok((*binding, Flags::empty())),
577577
None => Err(Determinacy::Determined),
578578
},
579579
Scope::StdLibPrelude => {

compiler/rustc_resolve/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,6 +1006,7 @@ pub struct Resolver<'a, 'tcx> {
10061006
dummy_binding: NameBinding<'a>,
10071007
builtin_types_bindings: FxHashMap<Symbol, NameBinding<'a>>,
10081008
builtin_attrs_bindings: FxHashMap<Symbol, NameBinding<'a>>,
1009+
registered_tool_bindings: FxHashMap<Ident, NameBinding<'a>>,
10091010

10101011
used_extern_options: FxHashSet<Symbol>,
10111012
macro_names: FxHashSet<Ident>,
@@ -1359,6 +1360,14 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
13591360
(builtin_attr.name, binding)
13601361
})
13611362
.collect(),
1363+
registered_tool_bindings: registered_tools
1364+
.iter()
1365+
.map(|ident| {
1366+
let binding = (Res::ToolMod, pub_vis, ident.span, LocalExpnId::ROOT)
1367+
.to_name_binding(arenas);
1368+
(*ident, binding)
1369+
})
1370+
.collect(),
13621371

13631372
used_extern_options: Default::default(),
13641373
macro_names: FxHashSet::default(),

0 commit comments

Comments
 (0)