simplify things using tcx.as_lang_item
This commit is contained in:
parent
c6454dd582
commit
144d6cc65b
1 changed files with 25 additions and 27 deletions
|
@ -354,33 +354,31 @@ impl<'a, 'tcx> Visitor<'a, 'tcx> for TailCallCkVisitor<'a, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn op_trait_as_method_name(tcx: TyCtxt<'_>, trait_did: DefId) -> Option<&'static str> {
|
fn op_trait_as_method_name(tcx: TyCtxt<'_>, trait_did: DefId) -> Option<&'static str> {
|
||||||
let trait_did = Some(trait_did);
|
let m = match tcx.as_lang_item(trait_did)? {
|
||||||
let items = tcx.lang_items();
|
LangItem::Add => "add",
|
||||||
let m = match () {
|
LangItem::Sub => "sub",
|
||||||
_ if trait_did == items.get(LangItem::Add) => "add",
|
LangItem::Mul => "mul",
|
||||||
_ if trait_did == items.get(LangItem::Sub) => "sub",
|
LangItem::Div => "div",
|
||||||
_ if trait_did == items.get(LangItem::Mul) => "mul",
|
LangItem::Rem => "rem",
|
||||||
_ if trait_did == items.get(LangItem::Div) => "div",
|
LangItem::Neg => "neg",
|
||||||
_ if trait_did == items.get(LangItem::Rem) => "rem",
|
LangItem::Not => "not",
|
||||||
_ if trait_did == items.get(LangItem::Neg) => "neg",
|
LangItem::BitXor => "bitxor",
|
||||||
_ if trait_did == items.get(LangItem::Not) => "not",
|
LangItem::BitAnd => "bitand",
|
||||||
_ if trait_did == items.get(LangItem::BitXor) => "bitxor",
|
LangItem::BitOr => "bitor",
|
||||||
_ if trait_did == items.get(LangItem::BitAnd) => "bitand",
|
LangItem::Shl => "shl",
|
||||||
_ if trait_did == items.get(LangItem::BitOr) => "bitor",
|
LangItem::Shr => "shr",
|
||||||
_ if trait_did == items.get(LangItem::Shl) => "shl",
|
LangItem::AddAssign => "add_assign",
|
||||||
_ if trait_did == items.get(LangItem::Shr) => "shr",
|
LangItem::SubAssign => "sub_assign",
|
||||||
_ if trait_did == items.get(LangItem::AddAssign) => "add_assign",
|
LangItem::MulAssign => "mul_assign",
|
||||||
_ if trait_did == items.get(LangItem::SubAssign) => "sub_assign",
|
LangItem::DivAssign => "div_assign",
|
||||||
_ if trait_did == items.get(LangItem::MulAssign) => "mul_assign",
|
LangItem::RemAssign => "rem_assign",
|
||||||
_ if trait_did == items.get(LangItem::DivAssign) => "div_assign",
|
LangItem::BitXorAssign => "bitxor_assign",
|
||||||
_ if trait_did == items.get(LangItem::RemAssign) => "rem_assign",
|
LangItem::BitAndAssign => "bitand_assign",
|
||||||
_ if trait_did == items.get(LangItem::BitXorAssign) => "bitxor_assign",
|
LangItem::BitOrAssign => "bitor_assign",
|
||||||
_ if trait_did == items.get(LangItem::BitAndAssign) => "bitand_assign",
|
LangItem::ShlAssign => "shl_assign",
|
||||||
_ if trait_did == items.get(LangItem::BitOrAssign) => "bitor_assign",
|
LangItem::ShrAssign => "shr_assign",
|
||||||
_ if trait_did == items.get(LangItem::ShlAssign) => "shl_assign",
|
LangItem::Index => "index",
|
||||||
_ if trait_did == items.get(LangItem::ShrAssign) => "shr_assign",
|
LangItem::IndexMut => "index_mut",
|
||||||
_ if trait_did == items.get(LangItem::Index) => "index",
|
|
||||||
_ if trait_did == items.get(LangItem::IndexMut) => "index_mut",
|
|
||||||
_ => return None,
|
_ => return None,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue