`CoerceUnsized` or `DispatchFromDyn` was implemented on a struct which does not contain a field that is being unsized. Example of erroneous code: ```compile_fail,E0374 #![feature(coerce_unsized)] use std::ops::CoerceUnsized; struct Foo { a: i32, } // error: Struct `Foo` has no unsized fields that need to be coerced. impl CoerceUnsized> for Foo where T: CoerceUnsized {} ``` `CoerceUnsized` is used to coerce structs that have a field that can be unsized, like a custom `MyBox` being unsized to `MyBox`. `DispatchFromDyn` is used to dispatch from `MyBox` to `MyBox` in a dyn-compatible trait. If the struct doesn't have any fields of unsized types then there is no meaningful way to implement `CoerceUnsized` or `DispatchFromDyn`, since there is no coercion taking place. Note that `CoerceUnsized` and `DispatchFromDyn` is mainly used by smart pointers like `Box`, `Rc` and `Arc` to be able to mark that they can coerce unsized types that they are pointing at.