error[E0308]: mismatched types --> $DIR/issue-24036.rs:3:9 | LL | x = |c| c + 1; | ^^^^^^^^^ expected closure, found a different closure | = note: expected type `[closure@$DIR/issue-24036.rs:2:17: 2:26]` found type `[closure@$DIR/issue-24036.rs:3:9: 3: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:10:14 | LL | let x = match 1usize { | _____________- LL | | 1 => |c| c + 1, | | --------- this is found to be of type `[closure@$DIR/issue-24036.rs:9:14: 9:23]` LL | | 2 => |c| c - 1, | | ^^^^^^^^^ expected closure, found a different closure LL | | _ => |c| c - 1 LL | | }; | |_____- `match` arms have incompatible types | = note: expected type `[closure@$DIR/issue-24036.rs:9:14: 9:23]` found type `[closure@$DIR/issue-24036.rs:10:14: 10: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`.