aboutsummaryrefslogtreecommitdiff
path: root/crates/hir/src/lib.rs
diff options
context:
space:
mode:
authorClemens Wasser <[email protected]>2021-06-07 12:59:01 +0100
committerClemens Wasser <[email protected]>2021-06-21 15:40:21 +0100
commit47747cd4120e260a144242aadd7732e11d133fe4 (patch)
treeba767d7da808c050e313446ac4cb90d810d0f4de /crates/hir/src/lib.rs
parent4402f2b280f58896ed0696f4243d88a58fd970ca (diff)
Apply some clippy suggestions
Diffstat (limited to 'crates/hir/src/lib.rs')
-rw-r--r--crates/hir/src/lib.rs42
1 files changed, 19 insertions, 23 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index b7eabaabb..88490fea9 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -219,8 +219,7 @@ impl Crate {
219 let doc_url = doc_attr_q.tt_values().map(|tt| { 219 let doc_url = doc_attr_q.tt_values().map(|tt| {
220 let name = tt.token_trees.iter() 220 let name = tt.token_trees.iter()
221 .skip_while(|tt| !matches!(tt, TokenTree::Leaf(Leaf::Ident(Ident{text: ref ident, ..})) if ident == "html_root_url")) 221 .skip_while(|tt| !matches!(tt, TokenTree::Leaf(Leaf::Ident(Ident{text: ref ident, ..})) if ident == "html_root_url"))
222 .skip(2) 222 .nth(2);
223 .next();
224 223
225 match name { 224 match name {
226 Some(TokenTree::Leaf(Leaf::Literal(Literal{ref text, ..}))) => Some(text), 225 Some(TokenTree::Leaf(Leaf::Literal(Literal{ref text, ..}))) => Some(text),
@@ -1846,7 +1845,7 @@ impl TypeParam {
1846 1845
1847 pub fn trait_bounds(self, db: &dyn HirDatabase) -> Vec<Trait> { 1846 pub fn trait_bounds(self, db: &dyn HirDatabase) -> Vec<Trait> {
1848 db.generic_predicates_for_param(self.id) 1847 db.generic_predicates_for_param(self.id)
1849 .into_iter() 1848 .iter()
1850 .filter_map(|pred| match &pred.skip_binders().skip_binders() { 1849 .filter_map(|pred| match &pred.skip_binders().skip_binders() {
1851 hir_ty::WhereClause::Implemented(trait_ref) => { 1850 hir_ty::WhereClause::Implemented(trait_ref) => {
1852 Some(Trait::from(trait_ref.hir_trait_id())) 1851 Some(Trait::from(trait_ref.hir_trait_id()))
@@ -1951,7 +1950,7 @@ impl Impl {
1951 all.extend( 1950 all.extend(
1952 db.inherent_impls_in_crate(id) 1951 db.inherent_impls_in_crate(id)
1953 .for_self_ty(&ty) 1952 .for_self_ty(&ty)
1954 .into_iter() 1953 .iter()
1955 .cloned() 1954 .cloned()
1956 .map(Self::from) 1955 .map(Self::from)
1957 .filter(filter), 1956 .filter(filter),
@@ -2232,8 +2231,8 @@ impl Type {
2232 } 2231 }
2233 2232
2234 pub fn is_packed(&self, db: &dyn HirDatabase) -> bool { 2233 pub fn is_packed(&self, db: &dyn HirDatabase) -> bool {
2235 let adt_id = match self.ty.kind(&Interner) { 2234 let adt_id = match *self.ty.kind(&Interner) {
2236 &TyKind::Adt(hir_ty::AdtId(adt_id), ..) => adt_id, 2235 TyKind::Adt(hir_ty::AdtId(adt_id), ..) => adt_id,
2237 _ => return false, 2236 _ => return false,
2238 }; 2237 };
2239 2238
@@ -2287,9 +2286,9 @@ impl Type {
2287 } 2286 }
2288 2287
2289 pub fn fields(&self, db: &dyn HirDatabase) -> Vec<(Field, Type)> { 2288 pub fn fields(&self, db: &dyn HirDatabase) -> Vec<(Field, Type)> {
2290 let (variant_id, substs) = match self.ty.kind(&Interner) { 2289 let (variant_id, substs) = match *self.ty.kind(&Interner) {
2291 &TyKind::Adt(hir_ty::AdtId(AdtId::StructId(s)), ref substs) => (s.into(), substs), 2290 TyKind::Adt(hir_ty::AdtId(AdtId::StructId(s)), ref substs) => (s.into(), substs),
2292 &TyKind::Adt(hir_ty::AdtId(AdtId::UnionId(u)), ref substs) => (u.into(), substs), 2291 TyKind::Adt(hir_ty::AdtId(AdtId::UnionId(u)), ref substs) => (u.into(), substs),
2293 _ => return Vec::new(), 2292 _ => return Vec::new(),
2294 }; 2293 };
2295 2294
@@ -2488,20 +2487,17 @@ impl Type {
2488 cb: &mut impl FnMut(Type), 2487 cb: &mut impl FnMut(Type),
2489 ) { 2488 ) {
2490 for pred in bounds { 2489 for pred in bounds {
2491 match pred.skip_binders() { 2490 if let WhereClause::Implemented(trait_ref) = pred.skip_binders() {
2492 WhereClause::Implemented(trait_ref) => { 2491 cb(type_.clone());
2493 cb(type_.clone()); 2492 // skip the self type. it's likely the type we just got the bounds from
2494 // skip the self type. it's likely the type we just got the bounds from 2493 for ty in trait_ref
2495 for ty in trait_ref 2494 .substitution
2496 .substitution 2495 .iter(&Interner)
2497 .iter(&Interner) 2496 .skip(1)
2498 .skip(1) 2497 .filter_map(|a| a.ty(&Interner))
2499 .filter_map(|a| a.ty(&Interner)) 2498 {
2500 { 2499 walk_type(db, &type_.derived(ty.clone()), cb);
2501 walk_type(db, &type_.derived(ty.clone()), cb);
2502 }
2503 } 2500 }
2504 _ => (),
2505 } 2501 }
2506 } 2502 }
2507 } 2503 }
@@ -2514,7 +2510,7 @@ impl Type {
2514 walk_substs(db, type_, substs, cb); 2510 walk_substs(db, type_, substs, cb);
2515 } 2511 }
2516 TyKind::AssociatedType(_, substs) => { 2512 TyKind::AssociatedType(_, substs) => {
2517 if let Some(_) = ty.associated_type_parent_trait(db) { 2513 if ty.associated_type_parent_trait(db).is_some() {
2518 cb(type_.derived(ty.clone())); 2514 cb(type_.derived(ty.clone()));
2519 } 2515 }
2520 walk_substs(db, type_, substs, cb); 2516 walk_substs(db, type_, substs, cb);