#![allow(unused_variables)] fn main() { use std::{ptr, sync::Arc}; let inner = String::from("test"); let ptr = inner.as_ptr(); let arc = Arc::new(inner); let inner = Arc::unwrap_or_clone(arc); assert!(ptr::eq(ptr, inner.as_ptr())); let arc = Arc::new(inner); let arc2 = arc.clone(); let inner = Arc::unwrap_or_clone(arc); assert!(! ptr::eq(ptr, inner.as_ptr())); let inner = Arc::unwrap_or_clone(arc2); assert!(ptr::eq(ptr, inner.as_ptr())); }