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
|