in which NodeMap
and friends are macrotized!
This commit is contained in:
parent
1329605a3d
commit
078486b9f6
1 changed files with 12 additions and 17 deletions
|
@ -19,21 +19,16 @@ use syntax::ast;
|
|||
pub use rustc_data_structures::fx::FxHashMap;
|
||||
pub use rustc_data_structures::fx::FxHashSet;
|
||||
|
||||
pub type NodeMap<T> = FxHashMap<ast::NodeId, T>;
|
||||
pub type DefIdMap<T> = FxHashMap<DefId, T>;
|
||||
pub type HirIdMap<T> = FxHashMap<HirId, T>;
|
||||
pub type ItemLocalMap<T> = FxHashMap<ItemLocalId, T>;
|
||||
macro_rules! define_id_collections {
|
||||
($map_name:ident, $set_name:ident, $key:ty) => {
|
||||
pub type $map_name<T> = FxHashMap<$key, T>;
|
||||
pub fn $map_name<T>() -> $map_name<T> { FxHashMap() }
|
||||
pub type $set_name = FxHashSet<$key>;
|
||||
pub fn $set_name() -> $set_name { FxHashSet() }
|
||||
}
|
||||
}
|
||||
|
||||
pub type NodeSet = FxHashSet<ast::NodeId>;
|
||||
pub type DefIdSet = FxHashSet<DefId>;
|
||||
pub type HirIdSet = FxHashSet<HirId>;
|
||||
pub type ItemLocalSet = FxHashSet<ItemLocalId>;
|
||||
|
||||
pub fn NodeMap<T>() -> NodeMap<T> { FxHashMap() }
|
||||
pub fn DefIdMap<T>() -> DefIdMap<T> { FxHashMap() }
|
||||
pub fn HirIdMap<T>() -> HirIdMap<T> { FxHashMap() }
|
||||
pub fn ItemLocalMap<T>() -> ItemLocalMap<T> { FxHashMap() }
|
||||
pub fn NodeSet() -> NodeSet { FxHashSet() }
|
||||
pub fn DefIdSet() -> DefIdSet { FxHashSet() }
|
||||
pub fn HirIdSet() -> HirIdSet { FxHashSet() }
|
||||
pub fn ItemLocalSet() -> ItemLocalSet { FxHashSet() }
|
||||
define_id_collections!(NodeMap, NodeSet, ast::NodeId);
|
||||
define_id_collections!(DefIdMap, DefIdSet, DefId);
|
||||
define_id_collections!(HirIdMap, HirIdSet, HirId);
|
||||
define_id_collections!(ItemLocalMap, ItemLocalSet, ItemLocalId);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue