-
Notifications
You must be signed in to change notification settings - Fork 14k
Document (and test) a problem with Clone/Copy deriving.
#148807
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@bors r+ rollup Read the Zulip thread. I feel like I've heard of this problem before, but maybe just once. |
| // | ||
| // FIXME(#124794): unfortunately this doesn't work with `#[derive(Clone)] #[derive(Copy)]`. | ||
| // When the `Clone` impl is generated the `#[derive(Copy)]` hasn't been processed and | ||
| // `has_derive_copy` hasn't been set yet. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be done as a MIR pass, or something similar, IMO, instead of having a special hack in resolve.
The current optimization is a terrible hack, that is a best effort attempt to improve on the previous similar optimization hack that was both terrible and incorrect.
Rollup of 13 pull requests Successful merges: - #148694 (std: support `RwLock` and thread parking on TEEOS) - #148712 (Port `cfg_select!` to the new attribute parsing system) - #148760 (rustc_target: hide TargetOptions::vendor) - #148771 (IAT: Reinstate early bailout) - #148775 (Fix a typo in the documentation for the strict_shr function) - #148779 (Implement DynSend and DynSync for std::panic::Location.) - #148781 ([rustdoc] Remove unneeded `allow(rustc::potential_query_instability)`) - #148783 (add test for assoc type norm wf check) - #148785 (Replace `master` branch references with `main`) - #148791 (fix "is_closure_like" doc comment) - #148792 (Prefer to use file.stable_id over file.name from source map) - #148805 (rustc-dev-guide subtree update) - #148807 (Document (and test) a problem with `Clone`/`Copy` deriving.) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of #148807 - nnethercote:doc-Copy-Clone-problem, r=saethlin Document (and test) a problem with `Clone`/`Copy` deriving. I think this is useful information. I have worked on `derive` impls quite a bit and didn't know about this issue until today. r? `@saethlin`
Rollup of 13 pull requests Successful merges: - rust-lang/rust#148694 (std: support `RwLock` and thread parking on TEEOS) - rust-lang/rust#148712 (Port `cfg_select!` to the new attribute parsing system) - rust-lang/rust#148760 (rustc_target: hide TargetOptions::vendor) - rust-lang/rust#148771 (IAT: Reinstate early bailout) - rust-lang/rust#148775 (Fix a typo in the documentation for the strict_shr function) - rust-lang/rust#148779 (Implement DynSend and DynSync for std::panic::Location.) - rust-lang/rust#148781 ([rustdoc] Remove unneeded `allow(rustc::potential_query_instability)`) - rust-lang/rust#148783 (add test for assoc type norm wf check) - rust-lang/rust#148785 (Replace `master` branch references with `main`) - rust-lang/rust#148791 (fix "is_closure_like" doc comment) - rust-lang/rust#148792 (Prefer to use file.stable_id over file.name from source map) - rust-lang/rust#148805 (rustc-dev-guide subtree update) - rust-lang/rust#148807 (Document (and test) a problem with `Clone`/`Copy` deriving.) r? `@ghost` `@rustbot` modify labels: rollup
I think this is useful information. I have worked on
deriveimpls quite a bit and didn't know about this issue until today.r? @saethlin