diff --git a/tests/ui/methods.rs b/tests/ui/methods.rs index 111c6ce5a8c5..7faa45b987da 100644 --- a/tests/ui/methods.rs +++ b/tests/ui/methods.rs @@ -443,17 +443,3 @@ fn main() { let opt = Some(0); let _ = opt.unwrap(); } - -/// Checks implementation of `UNNECESSARY_FILTER_MAP` lint -fn unnecessary_filter_map() { - let _ = (0..4).filter_map(|x| if x > 1 { Some(x) } else { None }); - let _ = (0..4).filter_map(|x| { if x > 1 { return Some(x); }; None }); - let _ = (0..4).filter_map(|x| match x { - 0 | 1 => None, - _ => Some(x), - }); - - let _ = (0..4).filter_map(|x| Some(x + 1)); - - let _ = (0..4).filter_map(i32::checked_abs); -} diff --git a/tests/ui/methods.stderr b/tests/ui/methods.stderr index b006813e26d0..3189f375647f 100644 --- a/tests/ui/methods.stderr +++ b/tests/ui/methods.stderr @@ -453,35 +453,5 @@ error: used unwrap() on an Option value. If you don't want to handle the None ca | = note: `-D clippy::option-unwrap-used` implied by `-D warnings` -error: this `.filter_map` can be written more simply using `.filter` - --> $DIR/methods.rs:449:13 - | -449 | let _ = (0..4).filter_map(|x| if x > 1 { Some(x) } else { None }); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: `-D clippy::unnecessary-filter-map` implied by `-D warnings` - -error: this `.filter_map` can be written more simply using `.filter` - --> $DIR/methods.rs:450:13 - | -450 | let _ = (0..4).filter_map(|x| { if x > 1 { return Some(x); }; None }); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -error: this `.filter_map` can be written more simply using `.filter` - --> $DIR/methods.rs:451:13 - | -451 | let _ = (0..4).filter_map(|x| match x { - | _____________^ -452 | | 0 | 1 => None, -453 | | _ => Some(x), -454 | | }); - | |______^ - -error: this `.filter_map` can be written more simply using `.map` - --> $DIR/methods.rs:456:13 - | -456 | let _ = (0..4).filter_map(|x| Some(x + 1)); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -error: aborting due to 60 previous errors +error: aborting due to 56 previous errors diff --git a/tests/ui/unnecessary_filter_map.rs b/tests/ui/unnecessary_filter_map.rs new file mode 100644 index 000000000000..dd6cdc5d39d3 --- /dev/null +++ b/tests/ui/unnecessary_filter_map.rs @@ -0,0 +1,12 @@ +fn main() { + let _ = (0..4).filter_map(|x| if x > 1 { Some(x) } else { None }); + let _ = (0..4).filter_map(|x| { if x > 1 { return Some(x); }; None }); + let _ = (0..4).filter_map(|x| match x { + 0 | 1 => None, + _ => Some(x), + }); + + let _ = (0..4).filter_map(|x| Some(x + 1)); + + let _ = (0..4).filter_map(i32::checked_abs); +} diff --git a/tests/ui/unnecessary_filter_map.stderr b/tests/ui/unnecessary_filter_map.stderr new file mode 100644 index 000000000000..045802047d27 --- /dev/null +++ b/tests/ui/unnecessary_filter_map.stderr @@ -0,0 +1,32 @@ +error: this `.filter_map` can be written more simply using `.filter` + --> $DIR/unnecessary_filter_map.rs:2:13 + | +2 | let _ = (0..4).filter_map(|x| if x > 1 { Some(x) } else { None }); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: `-D clippy::unnecessary-filter-map` implied by `-D warnings` + +error: this `.filter_map` can be written more simply using `.filter` + --> $DIR/unnecessary_filter_map.rs:3:13 + | +3 | let _ = (0..4).filter_map(|x| { if x > 1 { return Some(x); }; None }); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: this `.filter_map` can be written more simply using `.filter` + --> $DIR/unnecessary_filter_map.rs:4:13 + | +4 | let _ = (0..4).filter_map(|x| match x { + | _____________^ +5 | | 0 | 1 => None, +6 | | _ => Some(x), +7 | | }); + | |______^ + +error: this `.filter_map` can be written more simply using `.map` + --> $DIR/unnecessary_filter_map.rs:9:13 + | +9 | let _ = (0..4).filter_map(|x| Some(x + 1)); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to 4 previous errors +