diff --git a/examples/multiple_errors.rs b/examples/multiple_errors.rs index e06c0fc..f1e65a9 100644 --- a/examples/multiple_errors.rs +++ b/examples/multiple_errors.rs @@ -12,13 +12,15 @@ fn join_errors(results: Vec>) -> Result<(), Report> { return Ok(()); } - results + let err = results .into_iter() .filter(Result::is_err) .map(Result::unwrap_err) - .fold(Err(eyre!("encountered multiple errors")), |report, e| { + .fold(eyre!("encountered multiple errors"), |report, e| { report.error(e) - }) + }); + + Err(err) } /// Helper function to generate errors diff --git a/src/config.rs b/src/config.rs index f2c38f9..01a5c74 100644 --- a/src/config.rs +++ b/src/config.rs @@ -4,7 +4,6 @@ use crate::{ section::PanicMessage, writers::{EnvSection, WriterExt}, }; -use eyre::WrapErr; use fmt::Display; use indenter::{indented, Format}; use owo_colors::{style, OwoColorize, Style}; @@ -760,7 +759,7 @@ impl HookBuilder { }; #[cfg(feature = "capture-spantrace")] - color_spantrace::set_theme(self.theme.into()).wrap_err("could not set the provided `Theme` via `color_spantrace::set_theme` globally as another was already set")?; + eyre::WrapErr::wrap_err(color_spantrace::set_theme(self.theme.into()), "could not set the provided `Theme` via `color_spantrace::set_theme` globally as another was already set")?; Ok((panic_hook, eyre_hook)) } @@ -1038,6 +1037,13 @@ pub struct EyreHook { issue_filter: Arc, } +type HookFunc = Box< + dyn Fn(&(dyn std::error::Error + 'static)) -> Box + + Send + + Sync + + 'static, +>; + impl EyreHook { #[allow(unused_variables)] pub(crate) fn default(&self, error: &(dyn std::error::Error + 'static)) -> crate::Handler { @@ -1091,14 +1097,7 @@ impl EyreHook { } /// Convert the self into the boxed type expected by `eyre::set_hook`. - pub fn into_eyre_hook( - self, - ) -> Box< - dyn Fn(&(dyn std::error::Error + 'static)) -> Box - + Send - + Sync - + 'static, - > { + pub fn into_eyre_hook(self) -> HookFunc { Box::new(move |e| Box::new(self.default(e))) } } diff --git a/src/lib.rs b/src/lib.rs index 51cb504..2664cad 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -342,7 +342,6 @@ rust_2018_idioms, unreachable_pub, bad_style, - const_err, dead_code, improper_ctypes, non_shorthand_field_patterns, @@ -350,8 +349,6 @@ overflowing_literals, path_statements, patterns_in_fns_without_body, - private_in_public, - unconditional_recursion, unused, unused_allocation, unused_comparisons, diff --git a/tests/data/theme_error_control.txt b/tests/data/theme_error_control.txt index ec3c1f0..573fb79 100644 --- a/tests/data/theme_error_control.txt +++ b/tests/data/theme_error_control.txt @@ -44,11 +44,15 @@ Error: at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panic.rs:133 20: test::run_test_in_process::h15b6b7d5919893aa at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:608 -  ⋮ 15 frames hidden ⋮  + 21: test::run_test::{{closure}}::h8ef02d13d4506b7f + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/test/src/lib.rs:572 + 22: test::run_test::{{closure}}::hcd7b423365d0ff7e + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/test/src/lib.rs:600 +  ⋮ 13 frames hidden ⋮  Note: note Warning: warning Suggestion: suggestion Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. -Run with RUST_BACKTRACE=full to include source snippets. \ No newline at end of file +Run with RUST_BACKTRACE=full to include source snippets. diff --git a/tests/data/theme_error_control_location.txt b/tests/data/theme_error_control_location.txt index 099cd2e..19fecfa 100644 --- a/tests/data/theme_error_control_location.txt +++ b/tests/data/theme_error_control_location.txt @@ -39,11 +39,15 @@ Error: at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panic.rs:133 20: test::run_test_in_process::h15b6b7d5919893aa at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:608 -  ⋮ 15 frames hidden ⋮  + 21: test::run_test::{{closure}}::h8ef02d13d4506b7f + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/test/src/lib.rs:572 + 22: test::run_test::{{closure}}::hcd7b423365d0ff7e + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/test/src/lib.rs:600 +  ⋮ 13 frames hidden ⋮  Note: note Warning: warning Suggestion: suggestion Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. -Run with RUST_BACKTRACE=full to include source snippets. \ No newline at end of file +Run with RUST_BACKTRACE=full to include source snippets. diff --git a/tests/data/theme_error_control_minimal.txt b/tests/data/theme_error_control_minimal.txt index 0df50fb..684d048 100644 --- a/tests/data/theme_error_control_minimal.txt +++ b/tests/data/theme_error_control_minimal.txt @@ -36,11 +36,15 @@ Error: at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panic.rs:133 20: test::run_test_in_process::h15b6b7d5919893aa at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:608 -  ⋮ 15 frames hidden ⋮  + 21: test::run_test::{{closure}}::h8ef02d13d4506b7f + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/test/src/lib.rs:572 + 22: test::run_test::{{closure}}::hcd7b423365d0ff7e + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/test/src/lib.rs:600 +  ⋮ 13 frames hidden ⋮  Note: note Warning: warning Suggestion: suggestion Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. -Run with RUST_BACKTRACE=full to include source snippets. \ No newline at end of file +Run with RUST_BACKTRACE=full to include source snippets. diff --git a/tests/data/theme_error_control_spantrace.txt b/tests/data/theme_error_control_spantrace.txt index 723e994..70635cc 100644 --- a/tests/data/theme_error_control_spantrace.txt +++ b/tests/data/theme_error_control_spantrace.txt @@ -41,11 +41,15 @@ Error: at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panic.rs:133 20: test::run_test_in_process::h15b6b7d5919893aa at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:608 -  ⋮ 15 frames hidden ⋮  + 21: test::run_test::{{closure}}::h8ef02d13d4506b7f + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/test/src/lib.rs:572 + 22: test::run_test::{{closure}}::hcd7b423365d0ff7e + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/test/src/lib.rs:600 +  ⋮ 13 frames hidden ⋮  Note: note Warning: warning Suggestion: suggestion Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. -Run with RUST_BACKTRACE=full to include source snippets. \ No newline at end of file +Run with RUST_BACKTRACE=full to include source snippets. diff --git a/tests/data/theme_panic_control_no_spantrace.txt b/tests/data/theme_panic_control_no_spantrace.txt index bac190d..95aa739 100644 --- a/tests/data/theme_panic_control_no_spantrace.txt +++ b/tests/data/theme_panic_control_no_spantrace.txt @@ -1,18 +1,20 @@ - Finished dev [unoptimized + debuginfo] target(s) in 0.02s + Finished dev [unoptimized + debuginfo] target(s) in 0.03s +warning: the following packages contain code that will be rejected by a future version of Rust: nom v4.2.3 +note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` Running `target/debug/examples/theme_test_helper` The application panicked (crashed). Message:  Location: examples/theme_test_helper.rs:37 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -  ⋮ 6 frames hidden ⋮  - 7: std::panic::panic_any::hb5351c0843c6c4aa - at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panic.rs:57 - 8: theme_test_helper::main::h22b568e997946766 - at /home/jlusby/git/yaahc/color-eyre/examples/theme_test_helper.rs:37 - 9: core::ops::function::FnOnce::call_once::hab7662216a7cf3dc - at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/ops/function.rs:227 -  ⋮ 15 frames hidden ⋮  +  ⋮ 7 frames hidden ⋮  + 8: std::panic::panic_any::h696507828cece708 + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/std/src/panic.rs:63 + 9: theme_test_helper::main::h8b0946db6f62a6fa + at /home/tei/dev/rust/color-eyre/examples/theme_test_helper.rs:37 + 10: core::ops::function::FnOnce::call_once::h6e047342a35216be + at /rustc/7b4d9e155fec06583c763f176fc432dc779f1fc6/library/core/src/ops/function.rs:250 +  ⋮ 16 frames hidden ⋮  Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. Run with RUST_BACKTRACE=full to include source snippets. diff --git a/tests/theme.rs b/tests/theme.rs index 5894385..278f364 100644 --- a/tests/theme.rs +++ b/tests/theme.rs @@ -118,7 +118,7 @@ fn test_panic_backwards_compatibility() { }; let output = std::process::Command::new("cargo") - .args(&["run", "--example", "theme_test_helper"]) + .args(["run", "--example", "theme_test_helper"]) .arg("--no-default-features") .args(&features) .output() @@ -151,7 +151,6 @@ fn test_backwards_compatibility(target: String, file_name: &str) { let all: Vec<_> = s.ansi_parse().collect(); let ansi: Vec<_> = s .ansi_parse() - .into_iter() .filter_map(|x| { if let Output::Escape(ansi) = x { Some(ansi) @@ -166,6 +165,7 @@ fn test_backwards_compatibility(target: String, file_name: &str) { let (_control_tokens, control_ansi) = f(&control); let (_target_tokens, target_ansi) = f(&target); + // pretty_assertions::assert_eq!(target, control); let msg = [ // comment out / un-comment what you need or don't need for debugging (see below for more instructions):