An attempt was made to implement `Drop` on a specialization of a generic type. Erroneous code example: ```compile_fail,E0367 trait Foo {} struct MyStruct { t: T } impl Drop for MyStruct { fn drop(&mut self) {} } ``` This code is not legal: it is not possible to specialize `Drop` to a subset of implementations of a generic type. In order for this code to work, `MyStruct` must also require that `T` implements `Foo`. Alternatively, another option is to wrap the generic type in another that specializes appropriately: ``` trait Foo{} struct MyStruct { t: T } struct MyStructWrapper { t: MyStruct } impl Drop for MyStructWrapper { fn drop(&mut self) {} } ```