// Should conservatively assume returned value could be any field

fn foo(x: &mut (i32, i32)) -> &mut i32 { &mut x.0 }

fn main() {
  let mut x = (0, 1);
  let y = foo(&mut x);
  *y += 1;
  `(x.1)`;
}