about summary refs log tree commit diff
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-10-30 18:55:33 +0800
committerGitHub <noreply@github.com>2018-10-30 18:55:33 +0800
commited37d80c30ca33ff9fb6ba70584037bcd94bae25 (patch)
tree61b51720233301725842512e70363f01fc982f0a
parent3176239d344d501895220ef62b63da5dfc66d445 (diff)
parentbb3e77d28443835d03c0148bfeb84ecad56b986d (diff)
downloadrust-ed37d80c30ca33ff9fb6ba70584037bcd94bae25.tar.gz
rust-ed37d80c30ca33ff9fb6ba70584037bcd94bae25.zip
Rollup merge of #55476 - ljedrz:flat_map_to_filter_map, r=cramertj
Change a flat_map with 0/1-element vecs to a filter_map

No need to use vectors in this case - `Option`s are quite sufficient.
-rw-r--r--src/librustc_traits/implied_outlives_bounds.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/librustc_traits/implied_outlives_bounds.rs b/src/librustc_traits/implied_outlives_bounds.rs
index ad0a54e392f..cde08f6832a 100644
--- a/src/librustc_traits/implied_outlives_bounds.rs
+++ b/src/librustc_traits/implied_outlives_bounds.rs
@@ -159,14 +159,14 @@ fn implied_bounds_from_components(
 ) -> Vec<OutlivesBound<'tcx>> {
     sup_components
         .into_iter()
-        .flat_map(|component| {
+        .filter_map(|component| {
             match component {
                 Component::Region(r) =>
-                    vec![OutlivesBound::RegionSubRegion(sub_region, r)],
+                    Some(OutlivesBound::RegionSubRegion(sub_region, r)),
                 Component::Param(p) =>
-                    vec![OutlivesBound::RegionSubParam(sub_region, p)],
+                    Some(OutlivesBound::RegionSubParam(sub_region, p)),
                 Component::Projection(p) =>
-                    vec![OutlivesBound::RegionSubProjection(sub_region, p)],
+                    Some(OutlivesBound::RegionSubProjection(sub_region, p)),
                 Component::EscapingProjection(_) =>
                 // If the projection has escaping regions, don't
                 // try to infer any implied bounds even for its
@@ -176,9 +176,9 @@ fn implied_bounds_from_components(
                 // idea is that the WAY that the caller proves
                 // that may change in the future and we want to
                 // give ourselves room to get smarter here.
-                    vec![],
+                    None,
                 Component::UnresolvedInferenceVariable(..) =>
-                    vec![],
+                    None,
             }
         })
         .collect()