X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=library%2Fproc_macro%2Fsrc%2Fbridge%2Fhandle.rs;h=00954107b7769c8af31d6d2c3e5f3a938716926c;hb=17e96879d8ea81ff9b4194ad6529df1a5784a70c;hp=7d6adda48ec6e4f21102937b9c49b810654fb316;hpb=52ee2a2738c957ca6fd54e97b4e090a266ba96ba;p=rust.git diff --git a/library/proc_macro/src/bridge/handle.rs b/library/proc_macro/src/bridge/handle.rs index 7d6adda48ec..00954107b77 100644 --- a/library/proc_macro/src/bridge/handle.rs +++ b/library/proc_macro/src/bridge/handle.rs @@ -1,11 +1,13 @@ //! Server-side handles and storage for per-handle data. -use std::collections::{BTreeMap, HashMap}; +use std::collections::BTreeMap; use std::hash::Hash; use std::num::NonZeroU32; use std::ops::{Index, IndexMut}; use std::sync::atomic::{AtomicUsize, Ordering}; +use super::fxhash::FxHashMap; + pub(super) type Handle = NonZeroU32; /// A store that associates values of type `T` with numeric handles. A value can @@ -54,12 +56,12 @@ fn index_mut(&mut self, h: Handle) -> &mut T { /// Like `OwnedStore`, but avoids storing any value more than once. pub(super) struct InternedStore { owned: OwnedStore, - interner: HashMap, + interner: FxHashMap, } impl InternedStore { pub(super) fn new(counter: &'static AtomicUsize) -> Self { - InternedStore { owned: OwnedStore::new(counter), interner: HashMap::new() } + InternedStore { owned: OwnedStore::new(counter), interner: FxHashMap::default() } } pub(super) fn alloc(&mut self, x: T) -> Handle {