diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs index 45e31095c5a..4b150ef061f 100644 --- a/crates/ra_hir/src/code_model.rs +++ b/crates/ra_hir/src/code_model.rs @@ -1042,30 +1042,18 @@ impl Type { } pub fn is_bool(&self) -> bool { - match &self.ty.value { - Ty::Apply(a_ty) => match a_ty.ctor { - TypeCtor::Bool => true, - _ => false, - }, - _ => false, - } + matches!(self.ty.value, Ty::Apply(ApplicationTy { ctor: TypeCtor::Bool, .. })) } pub fn is_mutable_reference(&self) -> bool { - match &self.ty.value { - Ty::Apply(a_ty) => match a_ty.ctor { - TypeCtor::Ref(Mutability::Mut) => true, - _ => false, - }, - _ => false, - } + matches!( + self.ty.value, + Ty::Apply(ApplicationTy { ctor: TypeCtor::Ref(Mutability::Mut), .. }) + ) } pub fn is_unknown(&self) -> bool { - match &self.ty.value { - Ty::Unknown => true, - _ => false, - } + matches!(self.ty.value, Ty::Unknown) } /// Checks that particular type `ty` implements `std::future::Future`. diff --git a/crates/ra_hir_ty/src/method_resolution.rs b/crates/ra_hir_ty/src/method_resolution.rs index 69c059ac864..533c6ccfb1f 100644 --- a/crates/ra_hir_ty/src/method_resolution.rs +++ b/crates/ra_hir_ty/src/method_resolution.rs @@ -95,14 +95,14 @@ impl Ty { // Types like slice can have inherent impls in several crates, (core and alloc). // The corresponding impls are marked with lang items, so we can use them to find the required crates. macro_rules! lang_item_crate { - ($($name:expr),+ $(,)?) => {{ - let mut v = ArrayVec::<[LangItemTarget; 2]>::new(); - $( - v.extend(db.lang_item(cur_crate, $name.into())); - )+ - v - }}; - } + ($($name:expr),+ $(,)?) => {{ + let mut v = ArrayVec::<[LangItemTarget; 2]>::new(); + $( + v.extend(db.lang_item(cur_crate, $name.into())); + )+ + v + }}; + } let lang_item_targets = match self { Ty::Apply(a_ty) => match a_ty.ctor {