// expect: parent sees 5 child / // destructors 3: a child owned by a field drops after its parent's drop returns, so the parent still sees it include rt; struct node { int* kid; } int* seen; fn main() { { node* p = rt.new(node); p.drop = fn() { rt.put_s("parent sees "); rt.put_n(*this.kid); rt.put_c(32); }; int* k = rt.new(int); k.drop = fn() { rt.put_s("child "); }; *k = 5; p.kid = k; } rt.put_c(10); return 0; } // zc0: skip