blob: 19fe599f241166b9c4c97b3a77cde6a3e1408071 [file] [log] [blame]
//! Tests that mutation of captured immutable variables in closures are not permitted.
#![feature(unboxed_closures, tuple_trait)]
use std::io::Read;
fn to_fn_once<A: std::marker::Tuple, F: FnOnce<A>>(f: F) -> F {
f
}
fn main() {
let x = 1;
to_fn_once(move || {
x = 2;
//~^ ERROR: cannot assign to `x`, as it is not declared as mutable
});
let s = std::io::stdin();
to_fn_once(move || {
s.read_to_end(&mut Vec::new());
//~^ ERROR: cannot borrow `s` as mutable, as it is not declared as mutable
});
}