| // This snippet ensures that no attempt to recover on a semicolon instead of | |
| // comma is made next to a closure body. | |
| // | |
| // If this recovery happens, then plenty of errors are emitted. Here, we expect | |
| // only one error. | |
| // | |
| // This is part of the following issues: | |
| // https://github.com/rust-lang/rust/issues/88065 | |
| // https://github.com/rust-lang/rust/issues/107959 | |
| //@ run-rustfix | |
| fn main() { | |
| // Closure with multiple expressions delimited by semicolon. | |
| let num = 5; | |
| (1..num).reduce(|a, b| { | |
| //~^ ERROR: closure bodies that contain statements must be surrounded by braces | |
| println!("{}", a); | |
| a * b | |
| }).unwrap(); | |
| // Closure with a single expression ended by a semicolon. | |
| let mut v = vec![1, 2, 3]; | |
| v.iter_mut().for_each(|x| {*x = *x+1;}); | |
| //~^ ERROR: closure bodies that contain statements must be surrounded by braces | |
| } |