From 711c5cb6d2bd88dffff5c4da378d5796095c0cd2 Mon Sep 17 00:00:00 2001 From: dswij Date: Sat, 14 Aug 2021 16:59:08 +0800 Subject: [PATCH] Add false positive test for `manual_flatten` Add a scenario where `manual_flatten` is triggered when match expression will still be used after the match in `if let`. --- tests/ui/manual_flatten.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/ui/manual_flatten.rs b/tests/ui/manual_flatten.rs index b5bd35a68785..7db6b730963c 100644 --- a/tests/ui/manual_flatten.rs +++ b/tests/ui/manual_flatten.rs @@ -91,6 +91,19 @@ fn main() { } } + struct Test { + a: usize, + } + + let mut vec_of_struct = [Some(Test { a: 1 }), None]; + + // Usage of `if let` expression should not trigger lint + for n in vec_of_struct.iter_mut() { + if let Some(z) = n { + *n = None; + } + } + // Using manual flatten should not trigger the lint for n in vec![Some(1), Some(2), Some(3)].iter().flatten() { println!("{}", n);