Make `#[derive(Copy)]` enough for both `Clone` and `Copy`
Rust Internals [Unofficial]
June 4, 2026
It doesn't need to operate at the trait solver level, It can syntactically disappear the impl block if there is an impl Clone for whatever variant of the type with any generic bounds. If it removes the impl Clone too aggressively, people can just add the Clone derive again.
I'm not saying this is the best way to implement it, just that the implementation side is not dead-end.
Discussion in the ATmosphere