blob: 1238165cb88d4f4621992b99c5c9a7f9d9100751 [file] [log] [blame] [view]
A negative implementation was marked as unsafe.
Erroneous code example:
```compile_fail,E0198
struct Foo;
unsafe impl !Clone for Foo { } // error!
```
A negative implementation is one that excludes a type from implementing a
particular trait. Not being able to use a trait is always a safe operation,
so negative implementations are always safe and never need to be marked as
unsafe.
This will compile:
```ignore (ignore auto_trait future compatibility warning)
#![feature(auto_traits)]
struct Foo;
auto trait Enterprise {}
impl !Enterprise for Foo { }
```
Please note that negative impls are only allowed for auto traits.