about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOli Scherer <github35764891676564198441@oli-obk.de>2021-08-10 11:03:10 +0000
committerOli Scherer <github35764891676564198441@oli-obk.de>2021-08-10 11:03:10 +0000
commit93c4aa80b805bd2f0685e3438cb851ff8775415c (patch)
treee410d4b8d02d5a5715cdc37dcd61b30d29d2c3be
parent7af445dc15924e68d9c3a0fdd506e762aaa00b79 (diff)
downloadrust-93c4aa80b805bd2f0685e3438cb851ff8775415c.tar.gz
rust-93c4aa80b805bd2f0685e3438cb851ff8775415c.zip
Don't collect into a `Vec` that is immediately being iterated on again.
-rw-r--r--compiler/rustc_trait_selection/src/opaque_types.rs5
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/rustc_trait_selection/src/opaque_types.rs b/compiler/rustc_trait_selection/src/opaque_types.rs
index f7ed5cd6bd1..1a195ce18ec 100644
--- a/compiler/rustc_trait_selection/src/opaque_types.rs
+++ b/compiler/rustc_trait_selection/src/opaque_types.rs
@@ -344,12 +344,11 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
         // check.)
         let bounds = tcx.explicit_item_bounds(def_id);
         debug!("{:#?}", bounds);
-        let bounds: Vec<_> =
-            bounds.iter().map(|(bound, _)| bound.subst(tcx, opaque_type_key.substs)).collect();
+        let bounds = bounds.iter().map(|(bound, _)| bound.subst(tcx, opaque_type_key.substs));
         debug!("{:#?}", bounds);
         let opaque_type = tcx.mk_opaque(def_id, opaque_type_key.substs);
 
-        let required_region_bounds = required_region_bounds(tcx, opaque_type, bounds.into_iter());
+        let required_region_bounds = required_region_bounds(tcx, opaque_type, bounds);
         if !required_region_bounds.is_empty() {
             for required_region in required_region_bounds {
                 concrete_ty.visit_with(&mut ConstrainOpaqueTypeRegionVisitor {