]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-40288.rs
Rollup merge of #60492 - acrrd:issues/54054_chain, r=SimonSapin
[rust.git] / src / test / ui / issues / issue-40288.rs
1 fn save_ref<'a>(refr: &'a i32, to: &mut [&'a i32]) {
2     for val in &mut *to {
3         *val = refr;
4     }
5 }
6
7 fn main() {
8     let ref init = 0i32;
9     let ref mut refr = 1i32;
10
11     let mut out = [init];
12
13     save_ref(&*refr, &mut out);
14
15     // This shouldn't be allowed as `refr` is borrowed
16     *refr = 3; //~ ERROR cannot assign to `*refr` because it is borrowed
17
18     // Prints 3?!
19     println!("{:?}", out[0]);
20 }