4 use std
::panic
::{UnwindSafe, AssertUnwindSafe}
;
5 use std
::cell
::RefCell
;
6 use std
::sync
::{Mutex, RwLock, Arc}
;
11 fn assert
<T
: UnwindSafe
+ ?Sized
>() {}
17 assert
::<*const i32>();
25 assert
::<RefCell
<i32>>();
27 assert
::<Mutex
<i32>>();
28 assert
::<RwLock
<i32>>();
29 assert
::<&Mutex
<i32>>();
30 assert
::<&RwLock
<i32>>();
33 assert
::<Box
<[u8]>>();
35 trait Trait
: UnwindSafe {}
36 assert
::<Box
<dyn Trait
>>();
40 assert
::<RwLock
<T
>>();
42 fn baz
<T
: UnwindSafe
>() {
45 assert
::<RefCell
<T
>>();
46 assert
::<AssertUnwindSafe
<T
>>();
47 assert
::<&AssertUnwindSafe
<T
>>();
48 assert
::<Rc
<AssertUnwindSafe
<T
>>>();
49 assert
::<Arc
<AssertUnwindSafe
<T
>>>();