//! The following is derived from Rust's //! library/std/src/panic/tests.rs at revision //! a61b9638bbbb48f9c2fde0ccbbcf03e64494ea0f. #![allow(dead_code)] mustang::can_run_this!(); use std::cell::RefCell; use std::panic::{AssertUnwindSafe, UnwindSafe}; use std::rc::Rc; use std::sync::{Arc, Mutex, RwLock}; struct Foo { a: i32, } fn assert() {} #[test] fn panic_safety_traits() { assert::(); assert::<&i32>(); assert::<*mut i32>(); assert::<*const i32>(); assert::(); assert::(); assert::<&str>(); assert::(); assert::<&Foo>(); assert::>(); assert::(); assert::>(); assert::>(); assert::>(); assert::>(); assert::<&Mutex>(); assert::<&RwLock>(); assert::>(); assert::>(); assert::>(); { trait Trait: UnwindSafe {} assert::>(); } fn bar() { assert::>(); assert::>(); } fn baz() { assert::>(); assert::>(); assert::>(); assert::>(); assert::<&AssertUnwindSafe>(); assert::>>(); assert::>>(); } }