module 0x8675309::M { struct S has copy, drop {} struct Coin has key {} struct Box has copy, drop { f: T } struct Box3 has copy, drop { f1: T1, f2: T2, f3: T3 } fun new_box(): Box { abort 0 } fun new_box3(): Box3 { abort 0 } fun both(_r: R, _c: C) { abort 0 } fun cpy(_c: C) { abort 0 } fun rsrc(_r: R) { abort 0 } fun t0() { both(S{}, Coin{}); both(0, Coin{}) } fun t1() { both(new_box(), new_box()) } fun t2() { rsrc(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); } fun t3() { cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); cpy(new_box3()); } }