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.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/crates/hir-def/src/lang_item.rs b/crates/hir-def/src/lang_item.rs index f9d5a843bd..04dfdb7d16 100644 --- a/crates/hir-def/src/lang_item.rs +++ b/crates/hir-def/src/lang_item.rs @@ -26,10 +26,11 @@ pub enum LangItemTarget { TraitId(TraitId), EnumVariantId(EnumVariantId), ConstId(ConstId), + MacroId(MacroId), } impl_from!( - EnumId, FunctionId, ImplId, StaticId, StructId, UnionId, TypeAliasId, TraitId, EnumVariantId, ConstId for LangItemTarget + EnumId, FunctionId, ImplId, StaticId, StructId, UnionId, TypeAliasId, TraitId, EnumVariantId, ConstId, MacroId for LangItemTarget ); /// Salsa query. This will look for lang items in a specific crate. @@ -276,7 +277,6 @@ impl LangItems { (self.BitXorAssign, &mut self.BitXorAssign_bitxor_assign, sym::bitxor_assign), (self.BitOrAssign, &mut self.BitOrAssign_bitor_assign, sym::bitor_assign), (self.BitAndAssign, &mut self.BitAndAssign_bitand_assign, sym::bitand_assign), - (self.Drop, &mut self.Drop_drop, sym::drop), (self.Debug, &mut self.Debug_fmt, sym::fmt), (self.Deref, &mut self.Deref_deref, sym::deref), (self.DerefMut, &mut self.DerefMut_deref_mut, sym::deref_mut), @@ -307,6 +307,13 @@ impl LangItems { ); Some(()) })(); + (|| { + methods( + self.Drop?, + &mut [(&mut self.Drop_drop, sym::drop), (&mut self.Drop_pin_drop, sym::pin_drop)], + ); + Some(()) + })(); } } @@ -397,11 +404,15 @@ macro_rules! language_item_table { } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] + #[allow(non_camel_case_types)] pub enum LangItemEnum { $( $(#[$attr])* $lang_item, )* + $( $non_lang_trait, )* + $( $non_lang_macro_field, )* + $( $resolve_manually, )* } impl LangItemEnum { @@ -409,6 +420,9 @@ macro_rules! language_item_table { pub fn from_lang_items(self, lang_items: &LangItems) -> Option<LangItemTarget> { match self { $( LangItemEnum::$lang_item => lang_items.$lang_item.map(Into::into), )* + $( LangItemEnum::$non_lang_trait => lang_items.$non_lang_trait.map(Into::into), )* + $( LangItemEnum::$non_lang_macro_field => lang_items.$non_lang_macro_field.map(Into::into), )* + $( LangItemEnum::$resolve_manually => lang_items.$resolve_manually.map(Into::into), )* } } @@ -716,6 +730,7 @@ language_item_table! { LangItems => PartialOrd_ge, FunctionId; PartialOrd_gt, FunctionId; Drop_drop, FunctionId; + Drop_pin_drop, FunctionId; Debug_fmt, FunctionId; Deref_deref, FunctionId; DerefMut_deref_mut, FunctionId; |