From f57cfc52f05fe3472d0b3b2e96ff3fa5156ac71f Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Thu, 31 Jul 2025 11:48:13 -0400 Subject: [PATCH 1/2] Bump `time` dependency Resolves this error when compiling with Rust 1.86.0: error[E0282]: type annotations needed for `Box<_>` --> [...]/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.30/src/format_description/parse/mod.rs:83:9 | 83 | let items = format_items | ^^^^^ ... 86 | Ok(items.into()) | ---- type must be known at this point | = note: this is an inference error on crate `time` caused by an API change in Rust 1.80.0; update `time` to version `>=0.3.35` by calling `cargo update` --- Cargo.lock | 26 +++++++++++++++++--------- Cargo.toml | 2 +- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 467ba74..f8c8eaf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "aho-corasick" @@ -226,9 +226,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.10" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", ] @@ -582,6 +582,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-traits" version = "0.2.17" @@ -983,13 +989,14 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -999,16 +1006,17 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ + "num-conv", "time-core", ] diff --git a/Cargo.toml b/Cargo.toml index 3a73dc2..29bde22 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ simple_logger = "4" colored = "2.0.0" pulldown-cmark = "0.9" rayon = "1.3" -time = { version = "0.3", features = ["local-offset"] } +time = { version = "0.3.41", features = ["local-offset"] } petgraph = "0.6" [lib] From ddc699d54b272f8f95a6e7aa469cefdca97deca9 Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Thu, 31 Jul 2025 11:58:29 -0400 Subject: [PATCH 2/2] Moderninze tarpaulin attributes It looks like the tarpaulin code coverage tool changed its recommendation for which attribute to use to exclude code from coverage tracking. Unfortunately, on stable Rust, this still requires excluding a lint rule: https://github.com/xd009642/tarpaulin/issues/487 --- Cargo.toml | 3 +++ src/lib.rs | 2 +- src/printer.rs | 14 +++++++------- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 29bde22..7447161 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,3 +37,6 @@ path = "src/lib.rs" assert_cmd = "2.0" predicates = "3" assert_fs = "1.0" + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin_include)'] } diff --git a/src/lib.rs b/src/lib.rs index 59dd5c9..ba27c5b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1010,7 +1010,7 @@ pub struct ParsedFile { pub defines: Defines, } -#[cfg_attr(tarpaulin, skip)] +#[cfg(not(tarpaulin_include))] pub fn print_parse_error( printer: &mut printer::Printer, error: &SvParserError, diff --git a/src/printer.rs b/src/printer.rs index 7d3349d..79950a9 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -54,14 +54,14 @@ impl Default for Printer { } impl Printer { - #[cfg_attr(tarpaulin, skip)] + #[cfg(not(tarpaulin_include))] pub fn new() -> Printer { Printer { term: term::stdout(), } } - #[cfg_attr(tarpaulin, skip)] + #[cfg(not(tarpaulin_include))] fn write(&mut self, dat: &str, color: Color) { if let Some(ref mut term) = self.term { let term_color = match color { @@ -113,7 +113,7 @@ impl Printer { } } - #[cfg_attr(tarpaulin, skip)] + #[cfg(not(tarpaulin_include))] fn with_pos)>( src: &str, print_pos: usize, @@ -150,7 +150,7 @@ impl Printer { } } - #[cfg_attr(tarpaulin, skip)] + #[cfg(not(tarpaulin_include))] fn print_single( &mut self, src: &str, @@ -179,7 +179,7 @@ impl Printer { }); } - #[cfg_attr(tarpaulin, skip)] + #[cfg(not(tarpaulin_include))] fn print_pretty( &mut self, src: &str, @@ -266,7 +266,7 @@ impl Printer { }); } - #[cfg_attr(tarpaulin, skip)] + #[cfg(not(tarpaulin_include))] pub fn print_parse_error( &mut self, path: &Path, @@ -286,7 +286,7 @@ impl Printer { Ok(()) } - #[cfg_attr(tarpaulin, skip)] + #[cfg(not(tarpaulin_include))] pub fn print_error(&mut self, error: &str) -> Result<(), Error> { self.write("Error", Color::BrightRed); self.write(&format!(": {}", error), Color::BrightWhite);