]> git.lizzy.rs Git - rust.git/blob - tests/ui/manual_ok_or.fixed
Addition `manual_map` test for `unsafe` blocks
[rust.git] / tests / ui / manual_ok_or.fixed
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 }