A negative implementation was marked as unsafe.
Erroneous code example:
#![allow(unused)]
fn main() {
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:
#![feature(auto_traits)]
struct Foo;
auto trait Enterprise {}
impl !Enterprise for Foo { } Please note that negative impls are only allowed for auto traits.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/error_codes/E0198.html