]> git.lizzy.rs Git - rust.git/commitdiff
Add test to map_flatten with an Option
authorMarcin Serwin <toxyxer@gmail.com>
Wed, 15 Apr 2020 17:06:41 +0000 (19:06 +0200)
committerMarcin Serwin <toxyxer@gmail.com>
Thu, 16 Apr 2020 06:00:32 +0000 (08:00 +0200)
tests/ui/map_flatten.fixed
tests/ui/map_flatten.rs
tests/ui/map_flatten.stderr

index 51732e02be4fe9244a703f4c2547b275e160f891..7ac368878ab7ea341ea7c71c4896eb7be5cf6813 100644 (file)
@@ -5,4 +5,5 @@
 
 fn main() {
     let _: Vec<_> = vec![5_i8; 6].into_iter().flat_map(|x| 0..x).collect();
+    let _: Option<_> = (Some(Some(1))).and_then(|x| x);
 }
index 66137a50ae8da563188dbe3845516b86d15c730b..a608601039ce783c80e3dfa2a3abdc4d94ea5dc5 100644 (file)
@@ -5,4 +5,5 @@
 
 fn main() {
     let _: Vec<_> = vec![5_i8; 6].into_iter().map(|x| 0..x).flatten().collect();
+    let _: Option<_> = (Some(Some(1))).map(|x| x).flatten();
 }
index e2ebd89b4c46fa98b25023bca1ad03266c8b3691..3cf2abd5b6d85a506a47e9fda694420c36bc3aff 100644 (file)
@@ -6,5 +6,11 @@ LL |     let _: Vec<_> = vec![5_i8; 6].into_iter().map(|x| 0..x).flatten().colle
    |
    = note: `-D clippy::map-flatten` implied by `-D warnings`
 
-error: aborting due to previous error
+error: called `map(..).flatten()` on an `Option`. This is more succinctly expressed by calling `.and_then(..)`
+  --> $DIR/map_flatten.rs:8:24
+   |
+LL |     let _: Option<_> = (Some(Some(1))).map(|x| x).flatten();
+   |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using `and_then` instead: `(Some(Some(1))).and_then(|x| x)`
+
+error: aborting due to 2 previous errors