error[E0308]: mismatched types --> $DIR/issue-24036.rs:13:9 | 13 | 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 --> $DIR/issue-24036.rs:13:9 | 13 | x = |c| c + 1; | ^^^^^^^^^ help: consider boxing your closure and/or using it as a trait object --> $DIR/issue-24036.rs:13:9 | 13 | x = |c| c + 1; | ^^^^^^^^^ error[E0308]: match arms have incompatible types --> $DIR/issue-24036.rs:18:13 | 18 | let x = match 1usize { | _____________^ 19 | | //~^ ERROR match arms have incompatible types 20 | | 1 => |c| c + 1, 21 | | 2 => |c| c - 1, 22 | | _ => |c| c - 1 23 | | }; | |_____^ 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 --> $DIR/issue-24036.rs:18:13 | 18 | let x = match 1usize { | _____________^ 19 | | //~^ ERROR match arms have incompatible types 20 | | 1 => |c| c + 1, 21 | | 2 => |c| c - 1, 22 | | _ => |c| c - 1 23 | | }; | |_____^ help: consider boxing your closure and/or using it as a trait object --> $DIR/issue-24036.rs:18:13 | 18 | let x = match 1usize { | _____________^ 19 | | //~^ ERROR match arms have incompatible types 20 | | 1 => |c| c + 1, 21 | | 2 => |c| c - 1, 22 | | _ => |c| c - 1 23 | | }; | |_____^ note: match arm with an incompatible type --> $DIR/issue-24036.rs:21:14 | 21 | 2 => |c| c - 1, | ^^^^^^^^^ error: aborting due to 2 previous errors