3 use crate::cell::RefCell;
4 use crate::panic::{AssertUnwindSafe, UnwindSafe};
6 use crate::sync::{Arc, Mutex, RwLock};
12 fn assert<T: UnwindSafe + ?Sized>() {}
15 fn panic_safety_traits() {
19 assert::<*const i32>();
27 assert::<RefCell<i32>>();
29 assert::<Mutex<i32>>();
30 assert::<RwLock<i32>>();
31 assert::<&Mutex<i32>>();
32 assert::<&RwLock<i32>>();
35 assert::<Box<[u8]>>();
38 trait Trait: UnwindSafe {}
39 assert::<Box<dyn Trait>>();
44 assert::<RwLock<T>>();
47 fn baz<T: UnwindSafe>() {
50 assert::<RefCell<T>>();
51 assert::<AssertUnwindSafe<T>>();
52 assert::<&AssertUnwindSafe<T>>();
53 assert::<Rc<AssertUnwindSafe<T>>>();
54 assert::<Arc<AssertUnwindSafe<T>>>();