aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_hir/src/code_model.rs24
-rw-r--r--crates/ra_hir_ty/src/method_resolution.rs16
2 files changed, 14 insertions, 26 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs
index 45e31095c..4b150ef06 100644
--- a/crates/ra_hir/src/code_model.rs
+++ b/crates/ra_hir/src/code_model.rs
@@ -1042,30 +1042,18 @@ impl Type {
1042 } 1042 }
1043 1043
1044 pub fn is_bool(&self) -> bool { 1044 pub fn is_bool(&self) -> bool {
1045 match &self.ty.value { 1045 matches!(self.ty.value, Ty::Apply(ApplicationTy { ctor: TypeCtor::Bool, .. }))
1046 Ty::Apply(a_ty) => match a_ty.ctor {
1047 TypeCtor::Bool => true,
1048 _ => false,
1049 },
1050 _ => false,
1051 }
1052 } 1046 }
1053 1047
1054 pub fn is_mutable_reference(&self) -> bool { 1048 pub fn is_mutable_reference(&self) -> bool {
1055 match &self.ty.value { 1049 matches!(
1056 Ty::Apply(a_ty) => match a_ty.ctor { 1050 self.ty.value,
1057 TypeCtor::Ref(Mutability::Mut) => true, 1051 Ty::Apply(ApplicationTy { ctor: TypeCtor::Ref(Mutability::Mut), .. })
1058 _ => false, 1052 )
1059 },
1060 _ => false,
1061 }
1062 } 1053 }
1063 1054
1064 pub fn is_unknown(&self) -> bool { 1055 pub fn is_unknown(&self) -> bool {
1065 match &self.ty.value { 1056 matches!(self.ty.value, Ty::Unknown)
1066 Ty::Unknown => true,
1067 _ => false,
1068 }
1069 } 1057 }
1070 1058
1071 /// Checks that particular type `ty` implements `std::future::Future`. 1059 /// 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 69c059ac8..533c6ccfb 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 {
95 // Types like slice can have inherent impls in several crates, (core and alloc). 95 // Types like slice can have inherent impls in several crates, (core and alloc).
96 // The corresponding impls are marked with lang items, so we can use them to find the required crates. 96 // The corresponding impls are marked with lang items, so we can use them to find the required crates.
97 macro_rules! lang_item_crate { 97 macro_rules! lang_item_crate {
98 ($($name:expr),+ $(,)?) => {{ 98 ($($name:expr),+ $(,)?) => {{
99 let mut v = ArrayVec::<[LangItemTarget; 2]>::new(); 99 let mut v = ArrayVec::<[LangItemTarget; 2]>::new();
100 $( 100 $(
101 v.extend(db.lang_item(cur_crate, $name.into())); 101 v.extend(db.lang_item(cur_crate, $name.into()));
102 )+ 102 )+
103 v 103 v
104 }}; 104 }};
105 } 105 }
106 106
107 let lang_item_targets = match self { 107 let lang_item_targets = match self {
108 Ty::Apply(a_ty) => match a_ty.ctor { 108 Ty::Apply(a_ty) => match a_ty.ctor {