//! Example of how `opaque!` prevents unsound `Drop`.
//!//! NOTE: Also in trait `Opaque` documentation. Keep 'em in sync.
usestd::cell::Cell;useselfref::opaque;structFoo<'a>{foo:Cell<Option<&'aFoo<'a>>>,
}impl<'a> Drop forFoo<'a>{fndrop(&mutself){}}structFooKey;opaque!{implOpaque forFooKey{typeKind<'a>=Foo<'a>;}}fnmain(){}