2023-04-20 09:37:15 -05:00
|
|
|
//@run-rustfix
|
2019-04-18 01:12:59 -05:00
|
|
|
|
2020-04-25 15:33:11 -05:00
|
|
|
#![allow(clippy::bind_instead_of_map)]
|
2019-08-15 21:42:07 -05:00
|
|
|
|
2019-04-18 01:12:59 -05:00
|
|
|
fn main() {
|
|
|
|
let opt = Some(1);
|
2021-11-19 01:12:46 -06:00
|
|
|
let r: Result<i32, i32> = Ok(1);
|
2021-11-15 11:53:35 -06:00
|
|
|
let bar = |_| Some(1);
|
2019-04-18 01:12:59 -05:00
|
|
|
|
|
|
|
// Check `OPTION_MAP_OR_NONE`.
|
|
|
|
// Single line case.
|
2021-11-15 11:53:35 -06:00
|
|
|
let _: Option<i32> = opt.map_or(None, |x| Some(x + 1));
|
2019-04-18 01:12:59 -05:00
|
|
|
// Multi-line case.
|
|
|
|
#[rustfmt::skip]
|
2021-11-15 11:53:35 -06:00
|
|
|
let _: Option<i32> = opt.map_or(None, |x| {
|
2019-04-18 01:12:59 -05:00
|
|
|
Some(x + 1)
|
|
|
|
});
|
2021-11-15 00:47:57 -06:00
|
|
|
// function returning `Option`
|
2021-11-15 11:53:35 -06:00
|
|
|
let _: Option<i32> = opt.map_or(None, bar);
|
2021-11-17 09:13:55 -06:00
|
|
|
let _: Option<i32> = opt.map_or(None, |x| {
|
|
|
|
let offset = 0;
|
2021-11-17 09:43:49 -06:00
|
|
|
let height = x;
|
2021-11-17 09:13:55 -06:00
|
|
|
Some(offset + height)
|
|
|
|
});
|
2021-11-19 01:12:46 -06:00
|
|
|
|
|
|
|
// Check `RESULT_MAP_OR_INTO_OPTION`.
|
|
|
|
let _: Option<i32> = r.map_or(None, Some);
|
2019-04-18 01:12:59 -05:00
|
|
|
}
|