They were originally called "opt-in, built-in traits" (OIBITs), but people realized that the name was too confusing and a mouthful, and so they were renamed to just "auto traits". The feature flag's name wasn't updated, though, so that's what this PR does. There are some other spots in the compiler that still refer to OIBITs, but I don't think changing those now is worth it since they are internal and not particularly relevant to this PR. Also see <https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/opt-in.2C.20built-in.20traits.20(auto.20traits).20feature.20name>.
16 lines
244 B
Rust
16 lines
244 B
Rust
#![feature(auto_traits)]
|
|
#![feature(negative_impls)]
|
|
|
|
auto trait MySafeTrait {}
|
|
|
|
struct Foo;
|
|
|
|
unsafe impl MySafeTrait for Foo {}
|
|
//~^ ERROR E0199
|
|
|
|
unsafe auto trait MyUnsafeTrait {}
|
|
|
|
impl MyUnsafeTrait for Foo {}
|
|
//~^ ERROR E0200
|
|
|
|
fn main() {}
|