error[E0308]: mismatched types --> $DIR/issue-24036.rs:13:9 | LL | x = |c| c + 1; | ^^^^^^^^^ expected closure, found a different closure | = note: expected type `[closure@$DIR/issue-24036.rs:12:17: 12:26]` found type `[closure@$DIR/issue-24036.rs:13:9: 13:18]` = note: no two closures, even if identical, have the same type = help: consider boxing your closure and/or using it as a trait object error[E0308]: match arms have incompatible types --> $DIR/issue-24036.rs:18:13 | LL | let x = match 1usize { | _____________^ LL | | //~^ ERROR match arms have incompatible types LL | | 1 => |c| c + 1, LL | | 2 => |c| c - 1, | | --------- match arm with an incompatible type LL | | _ => |c| c - 1 LL | | }; | |_____^ expected closure, found a different closure | = note: expected type `[closure@$DIR/issue-24036.rs:20:14: 20:23]` found type `[closure@$DIR/issue-24036.rs:21:14: 21:23]` = note: no two closures, even if identical, have the same type = help: consider boxing your closure and/or using it as a trait object error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.