#![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 | |
} |