]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_hir/src/weak_lang_items.rs
change usages of impl_trait_ref to bound_impl_trait_ref
[rust.git] / compiler / rustc_hir / src / weak_lang_items.rs
1 //! Validity checking for weak lang items
2
3 use crate::LangItem;
4
5 use rustc_span::symbol::{sym, Symbol};
6
7 macro_rules! weak_lang_items {
8     ($($item:ident, $sym:ident;)*) => {
9         pub static WEAK_LANG_ITEMS: &[LangItem] = &[$(LangItem::$item,)*];
10
11         impl LangItem {
12             pub fn is_weak(self) -> bool {
13                 matches!(self, $(LangItem::$item)|*)
14             }
15
16             pub fn link_name(self) -> Option<Symbol> {
17                 match self {
18                     $( LangItem::$item => Some(sym::$sym),)*
19                     _ => None,
20                 }
21             }
22         }
23     }
24 }
25
26 weak_lang_items! {
27     PanicImpl,          rust_begin_unwind;
28     EhPersonality,      rust_eh_personality;
29     EhCatchTypeinfo,    rust_eh_catch_typeinfo;
30 }