3 #![allow(unused_variables)]
4 #![allow(unused_imports)]
5 // pretty-expanded FIXME #23616
8 use std::cell::UnsafeCell;
10 struct MyUnsafePack<T>(UnsafeCell<T>);
12 unsafe impl<T: Send> Sync for MyUnsafePack<T> {}
15 value: MyUnsafePack<T>
19 fn forbidden(&self) {}
22 unsafe impl<T: Send> Sync for MyUnsafe<T> {}
26 VariantUnsafe(UnsafeCell<T>)
29 unsafe impl<T: Send> Sync for UnsafeEnum<T> {}
31 static STATIC1: UnsafeEnum<isize> = UnsafeEnum::VariantSafe;
33 static STATIC2: MyUnsafePack<isize> = MyUnsafePack(UnsafeCell::new(1));
34 const CONST: MyUnsafePack<isize> = MyUnsafePack(UnsafeCell::new(1));
35 static STATIC3: MyUnsafe<isize> = MyUnsafe{value: CONST};
37 static STATIC4: &'static MyUnsafePack<isize> = &STATIC2;
43 unsafe impl<T: Send> Sync for Wrap<T> {}
45 static UNSAFE: MyUnsafePack<isize> = MyUnsafePack(UnsafeCell::new(2));
46 static WRAPPED_UNSAFE: Wrap<&'static MyUnsafePack<isize>> = Wrap { value: &UNSAFE };