struct Foo<'a> { s: &'a mut String } fn f(x: usize, f: &Foo) { f.s.push('x'); //~ ERROR cannot borrow `*f.s` as mutable, as it is behind a `&` reference } fn main() {}