#![allow(unused)] fn a(i: i32) -> i32 {} //~^ ERROR mismatched types fn b(opt_str: Option) { let s: String = if let Some(s) = opt_str { //~^ ERROR mismatched types } else { String::new() }; } fn c() -> Option { //~^ ERROR mismatched types let x = Some(1); } fn d(opt_str: Option) { let s: String = if let Some(s) = opt_str { //~^ ERROR mismatched types } else { String::new() }; } fn d2(opt_str: Option) { let s = if let Some(s) = opt_str { } else { String::new() //~^ ERROR `if` and `else` have incompatible types }; } fn e(opt_str: Option) { let s: String = match opt_str { Some(s) => {} //~^ ERROR mismatched types None => String::new(), }; } fn e2(opt_str: Option) { let s = match opt_str { Some(s) => {} None => String::new(), //~^ ERROR `match` arms have incompatible types }; } fn main() {}