-
-
Notifications
You must be signed in to change notification settings - Fork 15k
Bound error caused by imperfect derives should include links to further explanation #157117
Copy link
Copy link
Open
Labels
A-diagnosticsArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsA-trait-systemArea: Trait systemArea: Trait systemD-newcomer-roadblockDiagnostics: Confusing error or lint; hard to understand for new users.Diagnostics: Confusing error or lint; hard to understand for new users.D-terseDiagnostics: An error or lint that doesn't give enough information about the problem at hand.Diagnostics: An error or lint that doesn't give enough information about the problem at hand.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-diagnosticsArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsA-trait-systemArea: Trait systemArea: Trait systemD-newcomer-roadblockDiagnostics: Confusing error or lint; hard to understand for new users.Diagnostics: Confusing error or lint; hard to understand for new users.D-terseDiagnostics: An error or lint that doesn't give enough information about the problem at hand.Diagnostics: An error or lint that doesn't give enough information about the problem at hand.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Code
Current output
Desired output
Rationale and extra context
Imperfect derives are non-obvious and require additional context for what they are and why they are the way they are. There's currently no single place where all of the reasons for them is properly documented. We should likely add either more info in The Reference, The Book, but for now we can at least update the "canonical" ticket #26925 description with a summary of the situation (the trait system was blocking us due to cycles, the new trait system should be unblocking this, changing to perfect derives would be a semver hazard) and link to it.
The "desired output" above is just an example and doesn't need to be followed exactly.
Other cases
Rust Version
Anything else?
Noticed the lack of centralized info on the matter and possibility to improve the diagnostic after seeing https://www.reddit.com/r/rust/comments/1tkpxf8/rusts_standard_derives_are_dumb/