aboutsummaryrefslogtreecommitdiff
path: root/tests/conformance/6-ownership/drop_temporary_statement.zc
blob: fd27623b7a57a0bc8789e8e14e27c17318dd57f3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
// expect: unlocked a b unlocked c /
// destructors 3: a value nothing holds drops at the end of its full statement; a bound guard drops at block end
include rt;
void unlock() { rt.put_s("unlocked "); }
fn main() {
	heap(0).drop = fn() { unlock(); };
	rt.put_s("a ");
	{ let guard = drop(heap(0), fn() { unlock(); }); rt.put_s("b "); }
	rt.put_s("c ");
	rt.put_c(10);
	return 0;
}
// zc0: skip