]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/option_filter_map.rs
Rollup merge of #102345 - chenyukang:fix-102182-impl-trait, r=estebank
[rust.git] / src / tools / clippy / tests / ui / option_filter_map.rs
1 // run-rustfix
2 #![warn(clippy::option_filter_map)]
3 #![allow(clippy::map_flatten)]
4
5 fn main() {
6     let _ = Some(Some(1)).filter(Option::is_some).map(Option::unwrap);
7     let _ = Some(Some(1)).filter(|o| o.is_some()).map(|o| o.unwrap());
8     let _ = Some(1).map(odds_out).filter(Option::is_some).map(Option::unwrap);
9     let _ = Some(1).map(odds_out).filter(|o| o.is_some()).map(|o| o.unwrap());
10
11     let _ = vec![Some(1)].into_iter().filter(Option::is_some).map(Option::unwrap);
12     let _ = vec![Some(1)].into_iter().filter(|o| o.is_some()).map(|o| o.unwrap());
13     let _ = vec![1]
14         .into_iter()
15         .map(odds_out)
16         .filter(Option::is_some)
17         .map(Option::unwrap);
18     let _ = vec![1]
19         .into_iter()
20         .map(odds_out)
21         .filter(|o| o.is_some())
22         .map(|o| o.unwrap());
23 }
24
25 fn odds_out(x: i32) -> Option<i32> {
26     if x % 2 == 0 { Some(x) } else { None }
27 }