| // 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 |
| } |