Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![feature(unsafe_destructor)]
- use std::cell::Cell;
- #[derive(Show)]
- struct C<'a> {
- f: Cell<Option<&'a C<'a>>>,
- g: Cell<Option<&'a C<'a>>>,
- }
- impl<'a> C<'a> {
- fn new() -> C<'a> {
- C { f: Cell::new(None), g: Cell::new(None) }
- }
- }
- #[unsafe_destructor]
- // force dropck to care about C<'a>
- impl<'a> Drop for C<'a> {
- fn drop(&mut self) { }
- }
- fn f() {
- let c2;
- let mut c1;
- c1 = C::new();
- c2 = C::new();
- c1.f.set(Some(&c2));
- }
- fn main() {
- f();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement