| The `Copy` trait was implemented on a type with a `Drop` implementation. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0184 |
| #[derive(Copy)] |
| struct Foo; // error! |
| |
| impl Drop for Foo { |
| fn drop(&mut self) { |
| } |
| } |
| ``` |
| |
| Explicitly implementing both `Drop` and `Copy` trait on a type is currently |
| disallowed. This feature can make some sense in theory, but the current |
| implementation is incorrect and can lead to memory unsafety (see |
| [issue #20126][iss20126]), so it has been disabled for now. |
| |
| [iss20126]: https://github.com/rust-lang/rust/issues/20126 |