]> git.lizzy.rs Git - rust.git/blob - tests/compile-fail/stacked_borrows/buggy_as_mut_slice.rs
98d4e6f22965dd24353bafe66f7e9ac430cbd394
[rust.git] / tests / compile-fail / stacked_borrows / buggy_as_mut_slice.rs
1 mod safe {
2     use std::slice::from_raw_parts_mut;
3
4     pub fn as_mut_slice<T>(self_: &Vec<T>) -> &mut [T] {
5         unsafe {
6             from_raw_parts_mut(self_.as_ptr() as *mut T, self_.len())
7         }
8     }
9 }
10
11 fn main() {
12     let v = vec![0,1,2];
13     let v1 = safe::as_mut_slice(&v);
14     let _v2 = safe::as_mut_slice(&v);
15     v1[1] = 5;
16     //~^ ERROR does not exist on the borrow stack
17 }