-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Closed
Description
When a type that is also Copy has #[derive(Clone)], the derived implementation should be:
fn clone(&self) -> Self { *self }From #27750 (comment)
As the example in #27750 (comment) shows, even when a composite type like Composite is Copy, its clone implementation may be less efficient than its Copy impl, due to copying fields individually instead of as a block.
Maybe being Copy is hard to determine exactly by the time #[derive(Clone)] needs to do its thing, but at least this could happen when both traits are in the same derive attribute? #[derive(Copy, Clone)]
Metadata
Metadata
Assignees
Labels
No labels