Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/dyn_map.rs')
-rw-r--r--crates/hir-def/src/dyn_map.rs17
1 files changed, 8 insertions, 9 deletions
diff --git a/crates/hir-def/src/dyn_map.rs b/crates/hir-def/src/dyn_map.rs
index 8868bc0cd9..eed1490a7a 100644
--- a/crates/hir-def/src/dyn_map.rs
+++ b/crates/hir-def/src/dyn_map.rs
@@ -27,15 +27,15 @@
pub mod keys {
use std::marker::PhantomData;
- use hir_expand::{attrs::AttrId, MacroCallId};
+ use hir_expand::{MacroCallId, attrs::AttrId};
use rustc_hash::FxHashMap;
- use syntax::{ast, AstNode, AstPtr};
+ use syntax::{AstNode, AstPtr, ast};
use crate::{
- dyn_map::{DynMap, Policy},
BlockId, ConstId, EnumId, EnumVariantId, ExternBlockId, ExternCrateId, FieldId, FunctionId,
ImplId, LifetimeParamId, Macro2Id, MacroRulesId, ProcMacroId, StaticId, StructId,
TraitAliasId, TraitId, TypeAliasId, TypeOrConstParamId, UnionId, UseId,
+ dyn_map::{DynMap, Policy},
};
pub type Key<K, V> = crate::dyn_map::Key<AstPtr<K>, V, AstPtrPolicy<K, V>>;
@@ -112,6 +112,10 @@ pub struct Key<K, V, P = (K, V)> {
}
impl<K, V, P> Key<K, V, P> {
+ #[allow(
+ clippy::new_without_default,
+ reason = "this a const fn, so it can't be default yet. See <https://github.com/rust-lang/rust/issues/63065>"
+ )]
pub(crate) const fn new() -> Key<K, V, P> {
Key { _phantom: PhantomData }
}
@@ -148,16 +152,11 @@ impl<K: Hash + Eq + 'static, V: 'static> Policy for (K, V) {
}
}
+#[derive(Default)]
pub struct DynMap {
pub(crate) map: Map,
}
-impl Default for DynMap {
- fn default() -> Self {
- DynMap { map: Map::new() }
- }
-}
-
#[repr(transparent)]
pub struct KeyMap<KEY> {
map: DynMap,