// Check that unsafe traits require unsafe impls and that inherent // impls cannot be unsafe. trait SafeTrait { fn foo(&self) { } } unsafe trait UnsafeTrait { fn foo(&self) { } } unsafe impl UnsafeTrait for u8 { } // OK impl UnsafeTrait for u16 { } //~ ERROR requires an `unsafe impl` declaration unsafe impl SafeTrait for u32 { } //~ ERROR the trait `SafeTrait` is not unsafe fn main() { }