]> git.lizzy.rs Git - rust.git/commitdiff
fix couple of perf related clipyp warnings
authorMatthias Krüger <matthias.krueger@famsik.de>
Tue, 4 Feb 2020 01:28:11 +0000 (02:28 +0100)
committerMatthias Krüger <matthias.krueger@famsik.de>
Tue, 4 Feb 2020 01:35:56 +0000 (02:35 +0100)
librustc: don't clone a type that is copy
librustc_incremental: use faster vector initialization
librustc_typeck: don't clone a type that is copy
librustdoc: don't create a vector where a slice will do

src/librustc/ty/mod.rs
src/librustc_incremental/persist/file_format.rs
src/librustc_typeck/astconv.rs
src/librustdoc/html/render.rs

index f417b907a381139c31bbf4021ace77a844722487..9cfd64d638234682822ea353d840cf1a6e36d437 100644 (file)
@@ -1344,7 +1344,7 @@ pub trait ToPredicate<'tcx> {
 impl<'tcx> ToPredicate<'tcx> for ConstnessAnd<TraitRef<'tcx>> {
     fn to_predicate(&self) -> Predicate<'tcx> {
         ty::Predicate::Trait(
-            ty::Binder::dummy(ty::TraitPredicate { trait_ref: self.value.clone() }),
+            ty::Binder::dummy(ty::TraitPredicate { trait_ref: self.value }),
             self.constness,
         )
     }
index 7534b7e9ef42933cea7834d51fc0b2a8fd3f2d06..5c72b049d97e98647e56efe307c7433eb0085b85 100644 (file)
@@ -90,8 +90,7 @@ pub fn read_file(
         let mut rustc_version_str_len = [0u8; 1];
         file.read_exact(&mut rustc_version_str_len)?;
         let rustc_version_str_len = rustc_version_str_len[0] as usize;
-        let mut buffer = Vec::with_capacity(rustc_version_str_len);
-        buffer.resize(rustc_version_str_len, 0);
+        let mut buffer = vec![0; rustc_version_str_len];
         file.read_exact(&mut buffer)?;
 
         if buffer != rustc_version().as_bytes() {
index c2123876b679bbfa5b83c38af2e86cf54e1f926e..231aed48fb6be7ff580c1e5c895c28275b04d77b 100644 (file)
@@ -1438,10 +1438,8 @@ fn conv_object_ty_poly_trait_ref(
 
         // Expand trait aliases recursively and check that only one regular (non-auto) trait
         // is used and no 'maybe' bounds are used.
-        let expanded_traits = traits::expand_trait_aliases(
-            tcx,
-            bounds.trait_bounds.iter().map(|&(a, b, _)| (a.clone(), b)),
-        );
+        let expanded_traits =
+            traits::expand_trait_aliases(tcx, bounds.trait_bounds.iter().map(|&(a, b, _)| (a, b)));
         let (mut auto_traits, regular_traits): (Vec<_>, Vec<_>) =
             expanded_traits.partition(|i| tcx.trait_is_auto(i.trait_ref().def_id()));
         if regular_traits.len() > 1 {
index c67064139426706b733ce69ccfb6b4615d086433..a16f7248baac7378eb76f2272e491b5aed43b895 100644 (file)
@@ -3629,14 +3629,7 @@ fn render_impl(
                 for it in &i.inner_impl().items {
                     if let clean::TypedefItem(ref tydef, _) = it.inner {
                         write!(w, "<span class=\"where fmt-newline\">  ");
-                        assoc_type(
-                            w,
-                            it,
-                            &vec![],
-                            Some(&tydef.type_),
-                            AssocItemLink::Anchor(None),
-                            "",
-                        );
+                        assoc_type(w, it, &[], Some(&tydef.type_), AssocItemLink::Anchor(None), "");
                         write!(w, ";</span>");
                     }
                 }