diff options
| author | Maybe Lapkin <waffle.lapkin@gmail.com> | 2024-11-29 20:28:02 +0100 |
|---|---|---|
| committer | Maybe Lapkin <waffle.lapkin@gmail.com> | 2024-11-29 20:28:02 +0100 |
| commit | 144d6cc65ba5d3ebdf1e20cc1a27bd3964402921 (patch) | |
| tree | 900a67b37eac193fae7ecceac8c9fc6960093072 | |
| parent | c6454dd582c66a53bbf91947098af59689f61c1e (diff) | |
| download | rust-144d6cc65ba5d3ebdf1e20cc1a27bd3964402921.tar.gz rust-144d6cc65ba5d3ebdf1e20cc1a27bd3964402921.zip | |
simplify things using `tcx.as_lang_item`
| -rw-r--r-- | compiler/rustc_mir_build/src/check_tail_calls.rs | 52 |
1 files changed, 25 insertions, 27 deletions
diff --git a/compiler/rustc_mir_build/src/check_tail_calls.rs b/compiler/rustc_mir_build/src/check_tail_calls.rs index 6eade204970..b1f46d37d50 100644 --- a/compiler/rustc_mir_build/src/check_tail_calls.rs +++ b/compiler/rustc_mir_build/src/check_tail_calls.rs @@ -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> { - let trait_did = Some(trait_did); - let items = tcx.lang_items(); - let m = match () { - _ if trait_did == items.get(LangItem::Add) => "add", - _ if trait_did == items.get(LangItem::Sub) => "sub", - _ if trait_did == items.get(LangItem::Mul) => "mul", - _ if trait_did == items.get(LangItem::Div) => "div", - _ if trait_did == items.get(LangItem::Rem) => "rem", - _ if trait_did == items.get(LangItem::Neg) => "neg", - _ if trait_did == items.get(LangItem::Not) => "not", - _ if trait_did == items.get(LangItem::BitXor) => "bitxor", - _ if trait_did == items.get(LangItem::BitAnd) => "bitand", - _ if trait_did == items.get(LangItem::BitOr) => "bitor", - _ if trait_did == items.get(LangItem::Shl) => "shl", - _ if trait_did == items.get(LangItem::Shr) => "shr", - _ if trait_did == items.get(LangItem::AddAssign) => "add_assign", - _ if trait_did == items.get(LangItem::SubAssign) => "sub_assign", - _ if trait_did == items.get(LangItem::MulAssign) => "mul_assign", - _ if trait_did == items.get(LangItem::DivAssign) => "div_assign", - _ if trait_did == items.get(LangItem::RemAssign) => "rem_assign", - _ if trait_did == items.get(LangItem::BitXorAssign) => "bitxor_assign", - _ if trait_did == items.get(LangItem::BitAndAssign) => "bitand_assign", - _ if trait_did == items.get(LangItem::BitOrAssign) => "bitor_assign", - _ if trait_did == items.get(LangItem::ShlAssign) => "shl_assign", - _ if trait_did == items.get(LangItem::ShrAssign) => "shr_assign", - _ if trait_did == items.get(LangItem::Index) => "index", - _ if trait_did == items.get(LangItem::IndexMut) => "index_mut", + let m = match tcx.as_lang_item(trait_did)? { + LangItem::Add => "add", + LangItem::Sub => "sub", + LangItem::Mul => "mul", + LangItem::Div => "div", + LangItem::Rem => "rem", + LangItem::Neg => "neg", + LangItem::Not => "not", + LangItem::BitXor => "bitxor", + LangItem::BitAnd => "bitand", + LangItem::BitOr => "bitor", + LangItem::Shl => "shl", + LangItem::Shr => "shr", + LangItem::AddAssign => "add_assign", + LangItem::SubAssign => "sub_assign", + LangItem::MulAssign => "mul_assign", + LangItem::DivAssign => "div_assign", + LangItem::RemAssign => "rem_assign", + LangItem::BitXorAssign => "bitxor_assign", + LangItem::BitAndAssign => "bitand_assign", + LangItem::BitOrAssign => "bitor_assign", + LangItem::ShlAssign => "shl_assign", + LangItem::ShrAssign => "shr_assign", + LangItem::Index => "index", + LangItem::IndexMut => "index_mut", _ => return None, }; |
