rust/tests/ui/closures/closure-immut-capture-error.rs
2025-06-04 17:48:50 +05:00

24 lines
564 B
Rust

//! 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
});
}