]> git.lizzy.rs Git - rust.git/commitdiff
Inline Generics::own_count
authorvarkor <github@varkor.com>
Thu, 8 Mar 2018 12:10:13 +0000 (12:10 +0000)
committervarkor <github@varkor.com>
Tue, 15 May 2018 13:20:19 +0000 (14:20 +0100)
src/librustc/ty/mod.rs
src/librustc/ty/subst.rs
src/librustc_typeck/astconv.rs
src/librustc_typeck/check/mod.rs
src/librustc_typeck/collect.rs

index bf4bc9d3b3e24255ba7022da47c7aa5a33a7d375..45005fd543d1b6fe9ea9605ffce78e69adfeea97 100644 (file)
@@ -795,12 +795,8 @@ pub struct Generics {
 }
 
 impl<'a, 'gcx, 'tcx> Generics {
-    pub fn own_count(&self) -> usize {
-        self.params.len()
-    }
-
     pub fn count(&self) -> usize {
-        self.parent_count + self.own_count()
+        self.parent_count + self.params.len()
     }
 
     pub fn lifetimes(&self) -> impl DoubleEndedIterator<Item = &RegionParameterDef> {
index 2f4daf61a074c095081afee0a8ff8b28b3a8bb60..ed8549af8b4bd973990faeb3d80c50b3899feece 100644 (file)
@@ -252,20 +252,20 @@ fn fill_single<FR, FT>(substs: &mut Vec<Kind<'tcx>>,
         }
 
         for def in &defs.params {
+            assert_eq!(def.index() as usize, substs.len());
             let param = match def {
                 ty::GenericParam::Lifetime(ref lt) => {
-                    UnpackedKind::Lifetime(mk_region(lt, substs))
+                    mk_region(lt, substs).into()
                 }
                 ty::GenericParam::Type(ref ty) => {
                     if skip_self {
                         skip_self = false;
                         continue
                     }
-                    UnpackedKind::Type(mk_type(ty, substs))
+                    mk_type(ty, substs).into()
                 }
             };
-            assert_eq!(def.index() as usize, substs.len());
-            substs.push(param.pack());
+            substs.push(param);
         }
     }
 
@@ -333,7 +333,7 @@ pub fn rebase_onto(&self, tcx: TyCtxt<'a, 'gcx, 'tcx>,
                        target_substs: &Substs<'tcx>)
                        -> &'tcx Substs<'tcx> {
         let defs = tcx.generics_of(source_ancestor);
-        tcx.mk_substs(target_substs.iter().chain(&self[defs.own_count()..]).cloned())
+        tcx.mk_substs(target_substs.iter().chain(&self[defs.params.len()..]).cloned())
     }
 
     pub fn truncate_to(&self, tcx: TyCtxt<'a, 'gcx, 'tcx>, generics: &ty::Generics)
@@ -586,7 +586,7 @@ pub fn from_method(tcx: TyCtxt<'a, 'gcx, 'tcx>,
 
         ty::TraitRef {
             def_id: trait_id,
-            substs: tcx.intern_substs(&substs[..defs.own_count()])
+            substs: tcx.intern_substs(&substs[..defs.params.len()])
         }
     }
 }
index fab8eec35f3b4f6cece3c4d6bd672faa4192bf60..0de26ba584b1990027eaf12ab1151443ca16fee5 100644 (file)
@@ -1143,7 +1143,7 @@ pub fn impl_trait_ty_to_ty(&self, def_id: DefId, lifetimes: &[hir::Lifetime]) ->
         assert_eq!(substs.len(), generics.parent_count);
 
         // Fill in our own generics with the resolved lifetimes
-        assert_eq!(lifetimes.len(), generics.own_count());
+        assert_eq!(lifetimes.len(), generics.params.len());
         substs.extend(lifetimes.iter().map(|lt| Kind::from(self.ast_region_to_region(lt, None))));
 
         debug!("impl_trait_ty_to_ty: final substs = {:?}", substs);
index b6f3d5a80d64c64e533fb11b2c0c94ff5e73458c..338f5cc867629573a5f60dd6703aac11234f52b8 100644 (file)
@@ -4754,7 +4754,7 @@ pub fn instantiate_value_path(&self,
                 (generics.parent_count, generics.has_self)
             }
             (Some((_, generics)), None) => {
-                (generics.own_count(), generics.has_self)
+                (generics.params.len(), generics.has_self)
             }
             (None, None) => (0, false)
         };
index 0fc47b93f8f99e50f3983714e08604705ad30ef8..ca496aed342674d9b22d34556561380c33b9f7cb 100644 (file)
@@ -971,10 +971,10 @@ fn generics_of<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
                                    .collect();
 
     let lifetimes: Vec<ty::GenericParam> =
-        regions.into_iter().map(|lt| ty::GenericParam::Lifetime(lt)).collect();
+        regions.into_iter().map(|lt| ty::GenericParam::Lifetime(lt));
     let types: Vec<ty::GenericParam> =
-        types.into_iter().map(|ty| ty::GenericParam::Type(ty)).collect();
-    let params = lifetimes.into_iter().chain(types.into_iter()).collect();
+        types.into_iter().map(|ty| ty::GenericParam::Type(ty));
+    let params = lifetimes.chain(types).collect();
 
     tcx.alloc_generics(ty::Generics {
         parent: parent_def_id,