thiserror icon indicating copy to clipboard operation
thiserror copied to clipboard

Warn about double-inclusion of error message

Open alexcrichton opened this issue 6 years ago • 2 comments

I recently cooked up https://github.com/CraneStation/wasmtime/pull/532 which fixed a "double error message" getting printed for errors such as:

pub enum CompileError {
    #[error("WebAssembly translation error: {0}")]
    Wasm(#[from] WasmError),
}

It'd be great if this crate could somehow issue a diagnostic indicating that there's no need to include the {0} in the #[error] because it's already rendered in the final error via #[from]

alexcrichton avatar Nov 08 '19 23:11 alexcrichton

I was talking about this in Cranelift - thiserror includes the inner error for Debug output but not for Display. From my perspective this is a bug because I have no idea what actually went wrong in Display mode. Would it be possible to make the two implementions consistent? Either include the inner error in Display or do not include it in Debug

jyn514 avatar Nov 17 '19 14:11 jyn514

I’m interested in trying to implement this. Looks like it would make the most sense to check after expanding display shorthand in Struct::from_syn and Enum::from_syn. Looks like for now the ability to issue warnings from a proc macro is nightly only, so I suppose this would just be proof-of-concept until that’s stabilized.

alilleybrinker avatar May 26 '20 01:05 alilleybrinker