1 #![allow(warnings)] 2 #![feature(in_band_lifetimes)] 3 foo(x: &'a u32) -> &'a u324 fn foo(x: &'a u32) -> &'a u32 { x } 5 main()6 fn main() { 7 let mut p = 3; 8 let r = foo(&p); 9 p += 1; //~ ERROR cannot assign to `p` because it is borrowed 10 println!("{}", r); 11 } 12