]> git.lizzy.rs Git - rust.git/blob - tests/ui/borrowck/borrowck-loan-vec-content.rs
Rollup merge of #106644 - alexcrichton:update-wasi-toolchain, r=cuviper
[rust.git] / tests / ui / borrowck / borrowck-loan-vec-content.rs
1 // Here we check that it is allowed to lend out an element of a
2 // (locally rooted) mutable, unique vector, and that we then prevent
3 // modifications to the contents.
4
5 fn takes_imm_elt<F>(_v: &isize, f: F) where F: FnOnce() {
6     f();
7 }
8
9 fn has_mut_vec_and_does_not_try_to_change_it() {
10     let mut v: Vec<isize> = vec![1, 2, 3];
11     takes_imm_elt(&v[0], || {})
12 }
13
14 fn has_mut_vec_but_tries_to_change_it() {
15     let mut v: Vec<isize> = vec![1, 2, 3];
16     takes_imm_elt(
17         &v[0],
18         || { //~ ERROR cannot borrow `v` as mutable
19             v[1] = 4;
20         })
21 }
22
23 fn main() {
24 }