`derive` was applied on something which is not a struct, a union or an enum. Erroneous code example: ```compile_fail,E0774 trait Foo { #[derive(Clone)] // error! type Bar; } ``` As said above, the `derive` attribute is only allowed on structs, unions or enums: ``` #[derive(Clone)] // ok! struct Bar { field: u32, } ``` You can find more information about `derive` in the [Rust Book]. [Rust Book]: https://doc.rust-lang.org/book/appendix-03-derivable-traits.html