The `DispatchFromDyn` trait was implemented on something which is not a pointer or a newtype wrapper around a pointer. Erroneous code example: ```compile_fail,E0378 #![feature(dispatch_from_dyn)] use std::ops::DispatchFromDyn; struct WrapperExtraField { ptr: T, extra_stuff: i32, } impl DispatchFromDyn> for WrapperExtraField where T: DispatchFromDyn, {} ``` The `DispatchFromDyn` trait currently can only be implemented for builtin pointer types and structs that are newtype wrappers around them — that is, the struct must have only one field (except for`PhantomData`), and that field must itself implement `DispatchFromDyn`. ``` #![feature(dispatch_from_dyn, unsize)] use std::{ marker::Unsize, ops::DispatchFromDyn, }; struct Ptr(*const T); impl DispatchFromDyn> for Ptr where T: Unsize, {} ``` Another example: ``` #![feature(dispatch_from_dyn)] use std::{ ops::DispatchFromDyn, marker::PhantomData, }; struct Wrapper { ptr: T, _phantom: PhantomData<()>, } impl DispatchFromDyn> for Wrapper where T: DispatchFromDyn, {} ```