#![allow(unused_variables)] #![feature(unique_rc_arc)] fn main() { use std::rc::{Rc, Weak, UniqueRc}; struct Gadget { #[allow(dead_code)] me: Weak, } fn create_gadget() -> Option> { let mut rc = UniqueRc::new(Gadget { me: Weak::new() }); rc.me = UniqueRc::downgrade(&rc); Some(UniqueRc::into_rc(rc)) } create_gadget().unwrap(); }