Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/lang_item.rs')
-rw-r--r--crates/hir-def/src/lang_item.rs16
1 files changed, 11 insertions, 5 deletions
diff --git a/crates/hir-def/src/lang_item.rs b/crates/hir-def/src/lang_item.rs
index c2cbb9eda7..f9d5a843bd 100644
--- a/crates/hir-def/src/lang_item.rs
+++ b/crates/hir-def/src/lang_item.rs
@@ -7,7 +7,7 @@ use intern::{Symbol, sym};
use stdx::impl_from;
use crate::{
- AdtId, AssocItemId, AttrDefId, Crate, EnumId, EnumVariantId, FunctionId, ImplId,
+ AdtId, AssocItemId, AttrDefId, ConstId, Crate, EnumId, EnumVariantId, FunctionId, ImplId,
ItemContainerId, MacroId, ModuleDefId, StaticId, StructId, TraitId, TypeAliasId, UnionId,
attrs::AttrFlags,
db::DefDatabase,
@@ -25,10 +25,11 @@ pub enum LangItemTarget {
TypeAliasId(TypeAliasId),
TraitId(TraitId),
EnumVariantId(EnumVariantId),
+ ConstId(ConstId),
}
impl_from!(
- EnumId, FunctionId, ImplId, StaticId, StructId, UnionId, TypeAliasId, TraitId, EnumVariantId for LangItemTarget
+ EnumId, FunctionId, ImplId, StaticId, StructId, UnionId, TypeAliasId, TraitId, EnumVariantId, ConstId for LangItemTarget
);
/// Salsa query. This will look for lang items in a specific crate.
@@ -51,7 +52,7 @@ pub fn crate_lang_items(db: &dyn DefDatabase, krate: Crate) -> Option<Box<LangIt
match assoc {
AssocItemId::FunctionId(f) => lang_items.collect_lang_item(db, f),
AssocItemId::TypeAliasId(t) => lang_items.collect_lang_item(db, t),
- AssocItemId::ConstId(_) => (),
+ AssocItemId::ConstId(c) => lang_items.collect_lang_item(db, c),
}
}
}
@@ -68,13 +69,13 @@ pub fn crate_lang_items(db: &dyn DefDatabase, krate: Crate) -> Option<Box<LangIt
AssocItemId::TypeAliasId(alias) => {
lang_items.collect_lang_item(db, alias)
}
- AssocItemId::ConstId(_) => {}
+ AssocItemId::ConstId(c) => lang_items.collect_lang_item(db, c),
}
});
}
ModuleDefId::AdtId(AdtId::EnumId(e)) => {
lang_items.collect_lang_item(db, e);
- e.enum_variants(db).variants.iter().for_each(|&(id, _, _)| {
+ e.enum_variants(db).variants.values().for_each(|&(id, _)| {
lang_items.collect_lang_item(db, id);
});
}
@@ -93,6 +94,7 @@ pub fn crate_lang_items(db: &dyn DefDatabase, krate: Crate) -> Option<Box<LangIt
ModuleDefId::TypeAliasId(t) => {
lang_items.collect_lang_item(db, t);
}
+ ModuleDefId::ConstId(c) => lang_items.collect_lang_item(db, c),
_ => {}
}
}
@@ -646,6 +648,10 @@ language_item_table! { LangItems =>
FieldBase, sym::field_base, TypeAliasId;
FieldType, sym::field_type, TypeAliasId;
+ RangeMin, sym::RangeMin, ConstId;
+ RangeMax, sym::RangeMax, ConstId;
+ RangeSub, sym::RangeSub, FunctionId;
+
@non_lang_core_traits:
core::default, Default;
core::fmt, Debug;