Reduce duplication in error messages (#532)

* Reduce duplication in error messages

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.

* Search the full error in wast assertions

Don't just search the top error, but search the whole backtrace by using
the `{:?}` format instead of `{}`.
This commit is contained in:
Alex Crichton
2019-11-08 18:24:02 -06:00
committed by GitHub
parent b58c2bf2a4
commit 29c8c4f68f
6 changed files with 11 additions and 11 deletions

View File

@@ -152,11 +152,11 @@ pub type Traps = PrimaryMap<DefinedFuncIndex, Vec<TrapInformation>>;
#[derive(Error, Debug)]
pub enum CompileError {
/// A wasm translation error occured.
#[error("WebAssembly translation error: {0}")]
#[error("WebAssembly translation error")]
Wasm(#[from] WasmError),
/// A compilation error occured.
#[error("Compilation error: {0}")]
#[error("Compilation error")]
Codegen(#[from] CodegenError),
/// A compilation error occured.