aboutsummaryrefslogtreecommitdiff
path: root/tests/conformance/6-ownership/drop_parent_before_child.zc
blob: 9f68c52bc6f116bc2e5db841901aceac9b3d9e48 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 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