]> git.lizzy.rs Git - rust.git/commitdiff
Simplify some counting
authorvarkor <github@varkor.com>
Sat, 16 Jun 2018 10:30:31 +0000 (11:30 +0100)
committervarkor <github@varkor.com>
Wed, 20 Jun 2018 11:23:46 +0000 (12:23 +0100)
src/librustc_typeck/astconv.rs
src/librustc_typeck/check/mod.rs

index d0cd1cf61ff10e596d6172cbc76a159792b493b4..f3912c3042d7fceef539782e094ed0dcf2aa18d4 100644 (file)
@@ -213,14 +213,18 @@ fn create_substs_for_ast_path(&self,
         // If the type is parameterized by this region, then replace this
         // region with the current anon region binding (in other words,
         // whatever & would get replaced with).
-        let mut lt_provided = 0;
-        let mut ty_provided = 0;
-        for arg in &generic_args.args {
-            match arg {
-                GenericArg::Lifetime(_) => lt_provided += 1,
-                GenericArg::Type(_) => ty_provided += 1,
-            }
-        }
+
+        // FIXME(varkor): Separating out the parameters is messy.
+        let lifetimes: Vec<_> = generic_args.args.iter().filter_map(|arg| match arg {
+            GenericArg::Lifetime(lt) => Some(lt),
+            _ => None,
+        }).collect();
+        let types: Vec<_> = generic_args.args.iter().filter_map(|arg| match arg {
+            GenericArg::Type(ty) => Some(ty),
+            _ => None,
+        }).collect();
+        let lt_provided = lifetimes.len();
+        let ty_provided = types.len();
 
         let decl_generics = tcx.generics_of(def_id);
         let mut lt_accepted = 0;
@@ -271,15 +275,6 @@ fn create_substs_for_ast_path(&self,
         };
 
         let own_self = self_ty.is_some() as usize;
-        // FIXME(varkor): Separating out the parameters is messy.
-        let lifetimes: Vec<_> = generic_args.args.iter().filter_map(|arg| match arg {
-            GenericArg::Lifetime(lt) => Some(lt),
-            _ => None,
-        }).collect();
-        let types: Vec<_> = generic_args.args.iter().filter_map(|arg| match arg {
-            GenericArg::Type(ty) => Some(ty),
-            _ => None,
-        }).collect();
         let substs = Substs::for_item(tcx, def_id, |param, substs| {
             match param.kind {
                 GenericParamDefKind::Lifetime => {
index 0a16cbeccd103d9db1cc04c32fc8795f73f19f66..366420cfcabb15780a8f6e2e72c4a496b7f63d71 100644 (file)
@@ -4742,8 +4742,7 @@ pub fn instantiate_value_path(&self,
             Def::Fn(def_id) |
             Def::Const(def_id) |
             Def::Static(def_id, _) => {
-                fn_segment = Some((segments.last().unwrap(),
-                                   self.tcx.generics_of(def_id)));
+                fn_segment = Some((segments.last().unwrap(), self.tcx.generics_of(def_id)));
             }
 
             // Case 3. Reference to a method or associated const.