rust/tests/ui/option_map_or_none.rs

29 lines
741 B
Rust
Raw Normal View History

// run-rustfix
#![allow(clippy::bind_instead_of_map)]
fn main() {
let opt = Some(1);
let r: Result<i32, i32> = Ok(1);
2021-11-15 17:53:35 +00:00
let bar = |_| Some(1);
// Check `OPTION_MAP_OR_NONE`.
// Single line case.
2021-11-15 17:53:35 +00:00
let _: Option<i32> = opt.map_or(None, |x| Some(x + 1));
// Multi-line case.
#[rustfmt::skip]
2021-11-15 17:53:35 +00:00
let _: Option<i32> = opt.map_or(None, |x| {
Some(x + 1)
});
2021-11-15 06:47:57 +00:00
// function returning `Option`
2021-11-15 17:53:35 +00:00
let _: Option<i32> = opt.map_or(None, bar);
2021-11-17 15:13:55 +00:00
let _: Option<i32> = opt.map_or(None, |x| {
let offset = 0;
2021-11-17 15:43:49 +00:00
let height = x;
2021-11-17 15:13:55 +00:00
Some(offset + height)
});
// Check `RESULT_MAP_OR_INTO_OPTION`.
let _: Option<i32> = r.map_or(None, Some);
}