struct Dog { cats_chased: usize, } impl Dog { pub fn chase_cat(&mut self) { let p: &'static mut usize = &mut self.cats_chased; //~^ ERROR lifetime may not live long enough *p += 1; } pub fn chase_cat_2(&mut self) { let p: &mut usize = &mut self.cats_chased; *p += 1; } } fn dog() -> Dog { Dog { cats_chased: 0 } } fn main() { let mut d = dog(); d.chase_cat(); println!("cats_chased: {}", d.cats_chased); }