2011-07-29 11:44:29 +02:00
|
|
|
// Ensures that putting resources inside structual types keeps
|
|
|
|
// working.
|
|
|
|
|
|
|
|
type closable = @mutable bool;
|
|
|
|
|
2011-08-19 15:16:48 -07:00
|
|
|
resource close_res(i: closable) { *i = false; }
|
2011-07-29 11:44:29 +02:00
|
|
|
|
2012-01-19 16:10:31 -08:00
|
|
|
enum option<T> { none; some(T); }
|
2011-07-29 11:44:29 +02:00
|
|
|
|
2011-08-19 15:16:48 -07:00
|
|
|
fn sink(res: option<close_res>) { }
|
2011-07-29 11:44:29 +02:00
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let c = @mutable true;
|
|
|
|
sink(none);
|
|
|
|
sink(some(close_res(c)));
|
2011-08-19 15:16:48 -07:00
|
|
|
assert (!*c);
|
2011-07-29 11:44:29 +02:00
|
|
|
}
|