rust-clippy/tests/ui/unnecessary_result_map_or_else.fixed
2024-01-23 16:12:56 +01:00

61 lines
1.4 KiB
Rust

#![warn(clippy::unnecessary_result_map_or_else)]
#![allow(clippy::unnecessary_literal_unwrap, clippy::let_and_return, clippy::let_unit_value)]
fn main() {
let x: Result<(), ()> = Ok(());
x.unwrap_or_else(|err| err); //~ ERROR: unused "map closure" when calling
// Type ascribtion.
let x: Result<(), ()> = Ok(());
x.unwrap_or_else(|err: ()| err); //~ ERROR: unused "map closure" when calling
// Auto-deref.
let y = String::new();
let x: Result<&String, &String> = Ok(&y);
let y: &str = x.unwrap_or_else(|err| err); //~ ERROR: unused "map closure" when calling
// Temporary variable.
let x: Result<(), ()> = Ok(());
x.unwrap_or_else(|err| err);
// Should not warn.
let x: Result<usize, usize> = Ok(0);
x.map_or_else(|err| err, |n| n + 1);
// Should not warn.
let y = ();
let x: Result<(), ()> = Ok(());
x.map_or_else(|err| err, |_| y);
// Should not warn.
let y = ();
let x: Result<(), ()> = Ok(());
x.map_or_else(
|err| err,
|_| {
let tmp = y;
tmp
},
);
// Should not warn.
let x: Result<usize, usize> = Ok(1);
x.map_or_else(
|err| err,
|n| {
let tmp = n + 1;
tmp
},
);
// Should not warn.
let y = 0;
let x: Result<usize, usize> = Ok(1);
x.map_or_else(
|err| err,
|n| {
let tmp = n;
y
},
);
}