diff --git a/src/librustc_error_codes/error_codes/E0198.md b/src/librustc_error_codes/error_codes/E0198.md index 6504d60dbd1d..687214a20509 100644 --- a/src/librustc_error_codes/error_codes/E0198.md +++ b/src/librustc_error_codes/error_codes/E0198.md @@ -1,17 +1,18 @@ +A negative implementation was marked as unsafe. + +Erroneous code example: + +```compile_fail +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. -```compile_fail -#![feature(optin_builtin_traits)] - -struct Foo; - -// unsafe is unnecessary -unsafe impl !Clone for Foo { } -``` - This will compile: ```ignore (ignore auto_trait future compatibility warning)