// 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() { } |