#![allow(unused_variables)] fn main() { use std::sync::Arc; use std::ptr; let strong = Arc::new("hello".to_owned()); let weak = Arc::downgrade(&strong); assert!(ptr::eq(&* strong, weak.as_ptr())); assert_eq!("hello", unsafe { &* weak.as_ptr() }); drop(strong); }