foo(x: &mut i32) -> i321 fn foo(x: &mut i32) -> i32 { 2 *x = 5; 3 unknown_code(&*x); 4 *x // must return 5 5 } 6 main()7 fn main() { 8 println!("{}", foo(&mut 0)); 9 } 10 unknown_code(x: &i32)11 fn unknown_code(x: &i32) { 12 unsafe { *(x as *const i32 as *mut i32) = 7; } //~ ERROR borrow stack 13 } 14