19 lines
405 B
Rust
19 lines
405 B
Rust
// 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() { }
|