diff --git a/src/librustc_error_codes/error_codes/E0374.md b/src/librustc_error_codes/error_codes/E0374.md index 0e1a4bf8099..6d7dc88823c 100644 --- a/src/librustc_error_codes/error_codes/E0374.md +++ b/src/librustc_error_codes/error_codes/E0374.md @@ -1,9 +1,5 @@ -A struct without a field containing an unsized type cannot implement -`CoerceUnsized`. An [unsized type][1] is any type that the compiler -doesn't know the length or alignment of at compile time. Any struct -containing an unsized type is also unsized. - -[1]: https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait +`CoerceUnsized` was implemented on a struct which does not contain a field with +an unsized type. Example of erroneous code: @@ -20,6 +16,12 @@ impl CoerceUnsized> for Foo where T: CoerceUnsized {} ``` +An [unsized type][1] is any type where the compiler does not know the length or +alignment of at compile time. Any struct containing an unsized type is also +unsized. + +[1]: https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait + `CoerceUnsized` is used to coerce one struct containing an unsized type into another struct containing a different unsized type. If the struct doesn't have any fields of unsized types then you don't need explicit