diff options
Diffstat (limited to 'src/test/ui/structs-enums/resource-in-struct.rs')
-rw-r--r-- | src/test/ui/structs-enums/resource-in-struct.rs | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/test/ui/structs-enums/resource-in-struct.rs b/src/test/ui/structs-enums/resource-in-struct.rs deleted file mode 100644 index 9613ca62a..000000000 --- a/src/test/ui/structs-enums/resource-in-struct.rs +++ /dev/null @@ -1,37 +0,0 @@ -// run-pass -#![allow(non_camel_case_types)] - -// Ensures that class dtors run if the object is inside an enum -// variant - -use std::cell::Cell; - -type closable<'a> = &'a Cell<bool>; - -struct close_res<'a> { - i: closable<'a>, - -} - -impl<'a> Drop for close_res<'a> { - fn drop(&mut self) { - self.i.set(false); - } -} - -fn close_res(i: closable) -> close_res { - close_res { - i: i - } -} - -enum option<T> { none, some(#[allow(unused_tuple_struct_fields)] T), } - -fn sink(_res: option<close_res>) { } - -pub fn main() { - let c = &Cell::new(true); - sink(option::none); - sink(option::some(close_res(c))); - assert!(!c.get()); -} |