// This is not autofixable because we give extra suggestions to end the first expression with `;`. fn foo(a: Option, b: Option) -> bool { if let Some(x) = a { true } else { false } //~^ ERROR mismatched types //~| ERROR mismatched types && //~ ERROR mismatched types if let Some(y) = a { true } else { false } } fn bar() -> bool { false } fn main() { if true { true } else { false } && true; //~^ ERROR mismatched types //~| ERROR mismatched types if true { true } else { false } && if true { true } else { false }; //~^ ERROR mismatched types //~| ERROR mismatched types if true { true } else { false } if true { true } else { false }; //~^ ERROR mismatched types //~| ERROR mismatched types if true { bar() } else { bar() } && if true { bar() } else { bar() }; //~^ ERROR mismatched types //~| ERROR mismatched types if true { bar() } else { bar() } if true { bar() } else { bar() }; //~^ ERROR mismatched types //~| ERROR mismatched types let _ = if true { true } else { false } && true; // ok }