| //@ run-pass |
| //@ pretty-expanded FIXME #23616 |
| |
| #![deny(unused_mut)] |
| #![allow(unused_must_use)] |
| |
| // Test that mutating a mutable upvar in a capture-by-value unboxed |
| // closure does not ice (issue #18238) and marks the upvar as used |
| // mutably so we do not get a spurious warning about it not needing to |
| // be declared mutable (issue #18336 and #18769) |
| |
| fn set(x: &mut usize) { *x = 42; } |
| |
| fn main() { |
| { |
| let mut x = 0_usize; |
| move || x += 1; //~ WARN unused variable: `x` |
| } |
| { |
| let mut x = 0_usize; |
| move || x += 1; //~ WARN unused variable: `x` |
| } |
| { |
| let mut x = 0_usize; |
| move || set(&mut x); |
| } |
| { |
| let mut x = 0_usize; |
| move || set(&mut x); |
| } |
| } |