module 0x1::NestedFields { struct A { b: B } struct B { c: C } struct C { f: address } fun nested_fields_direct(a: &A): address { a.b.c.f } fun nested_fields_helper1(c: &C): address { c.f } fun nested_fields_helper2(b: &B): address { b.c.f } fun nested_fields_interproc(a1: &A, a2: &A, flag: bool): address { if (flag) { nested_fields_helper1(&a1.b.c) } else { nested_fields_helper2(&a2.b) } } }