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