From ec773fb7db431ffe6a0653c45d7bf4f6ca28bd56 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Thu, 12 Apr 2018 22:03:40 -0700 Subject: [PATCH] Make use of Generics::type_params iterator --- serde_derive/src/bound.rs | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/serde_derive/src/bound.rs b/serde_derive/src/bound.rs index ceb4c8b6..254217b7 100644 --- a/serde_derive/src/bound.rs +++ b/serde_derive/src/bound.rs @@ -149,13 +149,8 @@ where fn visit_macro(&mut self, _mac: &syn::Macro) {} } - let all_ty_params: HashSet<_> = generics - .params - .iter() - .filter_map(|param| match *param { - syn::GenericParam::Type(ref param) => Some(param.ident), - _ => None, - }) + let all_ty_params = generics.type_params() + .map(|param| param.ident) .collect(); let mut visitor = FindTyParams { @@ -179,13 +174,8 @@ where } } - let new_predicates = generics - .params - .iter() - .filter_map(|param| match *param { - syn::GenericParam::Type(ref param) => Some(param.ident), - _ => None, - }) + let new_predicates = generics.type_params() + .map(|param| param.ident) .filter(|id| visitor.relevant_ty_params.contains(id)) .map(|id| { syn::WherePredicate::Type(syn::PredicateType {