summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/map_err.rs
blob: 07c51784407a6b27dd1856e5cf77d245a369ead9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#![warn(clippy::map_err_ignore)]
#![allow(clippy::unnecessary_wraps)]
use std::error::Error;
use std::fmt;

#[derive(Debug)]
enum Errors {
    Ignored,
}

impl Error for Errors {}

impl fmt::Display for Errors {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "Error")
    }
}

fn main() -> Result<(), Errors> {
    let x = u32::try_from(-123_i32);

    println!("{:?}", x.map_err(|_| Errors::Ignored));
    //~^ ERROR: `map_err(|_|...` wildcard pattern discards the original error

    // Should not warn you because you explicitly ignore the parameter
    // using a named wildcard value
    println!("{:?}", x.map_err(|_foo| Errors::Ignored));

    Ok(())
}