4 fn option_unwrap_or() {
12 Some(1).unwrap_or(1 + 42);
23 Some("Bob").unwrap_or("Alice");
45 // cases where the none arm isn't a constant expression
46 // are not linted due to potential ownership issues
48 // ownership issue example, don't lint
50 let mut option: Option<NonCopyable> = None;
54 option = Some(NonCopyable);
60 // ownership issue example, don't lint
61 let option: Option<&str> = None;
64 None => &format!("{} {}!", "hello", "world"),
68 fn result_unwrap_or() {
70 (Ok(1) as Result<i32, &str>).unwrap_or(42);
73 (Ok(1) as Result<i32, &str>).unwrap_or(42);
76 (Ok(1) as Result<i32, &str>).unwrap_or(1 + 42);
80 (Ok(1) as Result<i32, &str>).unwrap_or({
87 (Ok("Bob") as Result<&str, &str>).unwrap_or("Alice");
90 match Ok(1) as Result<i32, &str> {
94 match Ok(1) as Result<i32, &str> {
99 match Ok(j) as Result<i32, &str> {
103 match Ok(j) as Result<i32, &str> {