module 0x8675309::M { struct S { f: u64, g: u64 } fun id(r: &T): &T { r } fun id_mut(r: &mut T): &mut T { r } fun imm_imm(_x: &T1, _y: &T2) { } fun mut_imm(_x: &mut T1, _y: &T2) { } fun mut_mut(_x: &mut T1, _y: &mut T2) { } fun t0(s1: &mut S, _s2: &mut S) { let f = freeze(s1); mut_imm(s1, f); let f = &s1.f; mut_imm(s1, f); let f = &s1.f; mut_imm(&mut s1.f, f); let f = id(&s1.f); id_mut(&mut s1.f); f; mut_mut(s1, s1); let f = &mut s1.f; mut_mut(s1, f); mut_mut(&mut s1.f, s1); let s = id_mut(s1); id_mut(s1); s; let f = id_mut(&mut s1.f); mut_mut(s1, f); mut_mut(id_mut(&mut s1.f), s1); } }