Skip to content
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

Reduce duplication in error messages #532

Merged

Conversation

alexcrichton
Copy link
Member

This commit removes duplication in error messages where the same text
would show up multiple times in a fully rendered error message.

When using derive(Error) when the #[from] attribute is used there's
no need to also render that payload into the error string because the
#[from] establishes a "backtrace" which means that when the full
context of an error is rendered it will include the #[from] in the
lower frames of the backtrace anyway.

This commit audits the derive(Error) implementations to avoid
duplication in the rendered error messages, ensuring that if #[from]
is used then the #[from] field isn't also rendered in the textual
description.

This commit removes duplication in error messages where the same text
would show up multiple times in a fully rendered error message.

When using `derive(Error)` when the `#[from]` attribute is used there's
no need to also render that payload into the error string because the
`#[from]` establishes a "backtrace" which means that when the full
context of an error is rendered it will include the `#[from]` in the
lower frames of the backtrace anyway.

This commit audits the `derive(Error)` implementations to avoid
duplication in the rendered error messages, ensuring that if `#[from]`
is used then the `#[from]` field isn't also rendered in the textual
description.
Don't just search the top error, but search the whole backtrace by using
the `{:?}` format instead of `{}`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants