rustc_hir/
weak_lang_items.rs
1use rustc_span::{Symbol, sym};
4
5use crate::LangItem;
6
7macro_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
26weak_lang_items! {
27 PanicImpl, rust_begin_unwind;
28 EhPersonality, rust_eh_personality;
29 EhCatchTypeinfo, rust_eh_catch_typeinfo;
30}