fn add(a: i32, b: i32) -> i32 { a + b } fn main() { // We shouldn't coerce capturing closure to a function let cap = 0; let _ = match "+" { "+" => add, "-" => |a, b| (a - b + cap) as i32, _ => unimplemented!(), }; //~^^^ ERROR `match` arms have incompatible types // We shouldn't coerce capturing closure to a non-capturing closure let _ = match "+" { "+" => |a, b| (a + b) as i32, "-" => |a, b| (a - b + cap) as i32, _ => unimplemented!(), }; //~^^^ ERROR `match` arms have incompatible types // We shouldn't coerce non-capturing closure to a capturing closure let _ = match "+" { "+" => |a, b| (a + b + cap) as i32, "-" => |a, b| (a - b) as i32, _ => unimplemented!(), }; //~^^^ ERROR `match` arms have incompatible types // We shouldn't coerce capturing closure to a capturing closure let _ = match "+" { "+" => |a, b| (a + b + cap) as i32, "-" => |a, b| (a - b + cap) as i32, _ => unimplemented!(), }; //~^^^ ERROR `match` arms have incompatible types }