]> git.proxmox.com Git - rustc.git/blame - src/tools/clippy/tests/ui/manual_filter_map.fixed
New upstream version 1.52.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / manual_filter_map.fixed
CommitLineData
f20569fa
XL
1// run-rustfix
2#![allow(dead_code)]
3#![warn(clippy::manual_filter_map)]
4#![allow(clippy::redundant_closure)] // FIXME suggestion may have redundant closure
5
6fn main() {
7 // is_some(), unwrap()
8 let _ = (0..).filter_map(|a| to_opt(a));
9
10 // ref pattern, expect()
11 let _ = (0..).filter_map(|a| to_opt(a));
12
13 // is_ok(), unwrap_or()
14 let _ = (0..).filter_map(|a| to_res(a).ok());
15}
16
17fn no_lint() {
18 // no shared code
19 let _ = (0..).filter(|n| *n > 1).map(|n| n + 1);
20
21 // very close but different since filter() provides a reference
22 let _ = (0..).filter(|n| to_opt(n).is_some()).map(|a| to_opt(a).unwrap());
23
24 // similar but different
25 let _ = (0..).filter(|n| to_opt(n).is_some()).map(|n| to_res(n).unwrap());
26 let _ = (0..)
27 .filter(|n| to_opt(n).map(|n| n + 1).is_some())
28 .map(|a| to_opt(a).unwrap());
29}
30
31fn to_opt<T>(_: T) -> Option<T> {
32 unimplemented!()
33}
34
35fn to_res<T>(_: T) -> Result<T, ()> {
36 unimplemented!()
37}