]>
Commit | Line | Data |
---|---|---|
f20569fa XL |
1 | // run-rustfix |
2 | #![warn(clippy::manual_ok_or)] | |
3 | #![allow(clippy::blacklisted_name)] | |
4 | #![allow(clippy::redundant_closure)] | |
5 | #![allow(dead_code)] | |
6 | #![allow(unused_must_use)] | |
7 | ||
8 | fn main() { | |
9 | // basic case | |
10 | let foo: Option<i32> = None; | |
11 | foo.ok_or("error"); | |
12 | ||
13 | // eta expansion case | |
14 | foo.ok_or("error"); | |
15 | ||
16 | // turbo fish syntax | |
17 | None::<i32>.ok_or("error"); | |
18 | ||
19 | // multiline case | |
20 | #[rustfmt::skip] | |
21 | foo.ok_or(&format!( | |
22 | "{}{}{}{}{}{}{}", | |
23 | "Alice", "Bob", "Sarah", "Marc", "Sandra", "Eric", "Jenifer")); | |
24 | ||
25 | // not applicable, closure isn't direct `Ok` wrapping | |
26 | foo.map_or(Err("error"), |v| Ok(v + 1)); | |
27 | ||
28 | // not applicable, or side isn't `Result::Err` | |
29 | foo.map_or(Ok::<i32, &str>(1), |v| Ok(v)); | |
30 | ||
31 | // not applicable, expr is not a `Result` value | |
32 | foo.map_or(42, |v| v); | |
33 | ||
34 | // TODO patterns not covered yet | |
35 | match foo { | |
36 | Some(v) => Ok(v), | |
37 | None => Err("error"), | |
38 | }; | |
39 | foo.map_or_else(|| Err("error"), |v| Ok(v)); | |
40 | } |