From cc81382a6070dd226a20e4a39518d88e957ac0e1 Mon Sep 17 00:00:00 2001 From: Bruce Mitchener Date: Thu, 21 Sep 2023 00:37:40 +0700 Subject: [PATCH] fix(misc): Improve ci and fix clippy (#290) * ci: Update actions, replace actions-rs. * `actions/checkout` is updated from `v1` to the current `v4`. * `actions-rs/toolchain` is replaced by `dtolnay/rust-toolchain` as the `actions-rs` actions haven't been maintained in a long time. * clippy: Remove unnecessary call to `into_iter`. The parameter takes `IntoIterator`, so we don't have to call `into_iter` at the call site. * clippy: Remove explicit lifetime that can be elided. * clippy: tests: Fix useless conversion warnings. * clippy: tests: Remove call to `format!`. * Fix minimal-versions build. Due to changes in the nightly compiler, using a recent nightly requires proc-macro2 1.0.60 or later: https://github.com/dtolnay/proc-macro2/issues/356 * ci: Use is-terminal 0.4.7 for MSRV builds. is-terminal 0.4.8 updated its MSRV to 1.63, so we can't use it with our MSRV of 1.56. Force usage of the older version which has an older MSRV. --- .github/workflows/ci.yml | 27 ++++++++----------- miette-derive/Cargo.toml | 2 +- src/handlers/graphical.rs | 4 +-- src/miette_diagnostic.rs | 2 +- tests/derive.rs | 37 ++++++--------------------- tests/test_diagnostic_source_macro.rs | 2 +- tests/test_json.rs | 16 ------------ 7 files changed, 24 insertions(+), 66 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4fafac33..912bfcc4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,14 +10,12 @@ jobs: name: Check fmt & build docs runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@master with: - profile: minimal toolchain: stable components: rustfmt - override: true - name: rustfmt run: cargo fmt --all -- --check - name: docs @@ -32,14 +30,15 @@ jobs: os: [ubuntu-latest, macOS-latest, windows-latest] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@master with: - profile: minimal toolchain: ${{ matrix.rust }} components: clippy - override: true + - name: Force older version of is-terminal for MSRV builds + if: matrix.rust == '1.56.0' + run: cargo update -p is-terminal --precise 0.4.7 - name: Clippy run: cargo clippy --all -- -D warnings - name: Run tests @@ -54,14 +53,12 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@master with: - profile: minimal toolchain: nightly components: miri,rust-src - override: true - name: Run tests with miri env: MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-strict-provenance @@ -75,13 +72,11 @@ jobs: os: [ubuntu-latest, macOS-latest, windows-latest] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@master with: - profile: minimal toolchain: nightly - override: true - name: Run minimal version build run: cargo build -Z minimal-versions --all-features diff --git a/miette-derive/Cargo.toml b/miette-derive/Cargo.toml index becdc175..b5a70327 100644 --- a/miette-derive/Cargo.toml +++ b/miette-derive/Cargo.toml @@ -11,6 +11,6 @@ repository = "https://github.com/zkat/miette" proc-macro = true [dependencies] -proc-macro2 = "1.0" +proc-macro2 = "1.0.60" quote = "1.0" syn = "2.0.11" diff --git a/src/handlers/graphical.rs b/src/handlers/graphical.rs index b5dd7545..e61f5951 100644 --- a/src/handlers/graphical.rs +++ b/src/handlers/graphical.rs @@ -382,10 +382,10 @@ impl GraphicalReportHandler { Ok(()) } - fn render_context<'a>( + fn render_context( &self, f: &mut impl fmt::Write, - source: &'a dyn SourceCode, + source: &dyn SourceCode, context: &LabeledSpan, labels: &[LabeledSpan], ) -> fmt::Result { diff --git a/src/miette_diagnostic.rs b/src/miette_diagnostic.rs index 67b75d0f..dc0468e4 100644 --- a/src/miette_diagnostic.rs +++ b/src/miette_diagnostic.rs @@ -252,7 +252,7 @@ impl MietteDiagnostic { /// ``` pub fn and_labels(mut self, labels: impl IntoIterator) -> Self { let mut all_labels = self.labels.unwrap_or_default(); - all_labels.extend(labels.into_iter()); + all_labels.extend(labels); self.labels = Some(all_labels); self } diff --git a/tests/derive.rs b/tests/derive.rs index 7faae42b..dbaf7cb4 100644 --- a/tests/derive.rs +++ b/tests/derive.rs @@ -189,7 +189,7 @@ fn fmt_help() { assert_eq!( "1 x hello x \"2\"".to_string(), - FooStruct("hello".into()).help().unwrap().to_string() + FooStruct("hello").help().unwrap().to_string() ); #[derive(Debug, Diagnostic, Error)] @@ -201,12 +201,7 @@ fn fmt_help() { assert_eq!( "1 x hello x \"2\"".to_string(), - BarStruct { - my_field: "hello".into() - } - .help() - .unwrap() - .to_string() + BarStruct { my_field: "hello" }.help().unwrap().to_string() ); #[derive(Debug, Diagnostic, Error)] @@ -224,7 +219,7 @@ fn fmt_help() { assert_eq!( "1 x bar x \"2\"".to_string(), - FooEnum::X("bar".into()).help().unwrap().to_string() + FooEnum::X("bar").help().unwrap().to_string() ); assert_eq!( @@ -250,12 +245,7 @@ fn help_field() { assert_eq!( "x".to_string(), - Foo { - do_this: Some("x".into()) - } - .help() - .unwrap() - .to_string() + Foo { do_this: Some("x") }.help().unwrap().to_string() ); #[derive(Debug, Diagnostic, Error)] @@ -271,16 +261,11 @@ fn help_field() { assert_eq!( "x".to_string(), - Bar::A(Some("x".into())).help().unwrap().to_string() + Bar::A(Some("x")).help().unwrap().to_string() ); assert_eq!( "x".to_string(), - Bar::B { - do_this: Some("x".into()) - } - .help() - .unwrap() - .to_string() + Bar::B { do_this: Some("x") }.help().unwrap().to_string() ); #[derive(Debug, Diagnostic, Error)] @@ -288,20 +273,14 @@ fn help_field() { #[diagnostic()] struct Baz<'a>(#[help] Option<&'a str>); - assert_eq!( - "x".to_string(), - Baz(Some("x".into())).help().unwrap().to_string() - ); + assert_eq!("x".to_string(), Baz(Some("x")).help().unwrap().to_string()); #[derive(Debug, Diagnostic, Error)] #[error("welp")] #[diagnostic()] struct Quux<'a>(#[help] &'a str); - assert_eq!( - "x".to_string(), - Quux("x".into()).help().unwrap().to_string() - ); + assert_eq!("x".to_string(), Quux("x").help().unwrap().to_string()); } #[test] diff --git a/tests/test_diagnostic_source_macro.rs b/tests/test_diagnostic_source_macro.rs index 536aedfb..df30b2e9 100644 --- a/tests/test_diagnostic_source_macro.rs +++ b/tests/test_diagnostic_source_macro.rs @@ -79,7 +79,7 @@ fn test_diagnostic_source() { fn test_diagnostic_source_pass_extra_info() { let diag = TestBoxedError(Box::new(SourceError { code: String::from("Hello\nWorld!"), - help: format!("Have you tried turning it on and off again?"), + help: String::from("Have you tried turning it on and off again?"), label: (1, 4), })); let mut out = String::new(); diff --git a/tests/test_json.rs b/tests/test_json.rs index 5bd14cbc..ae482b89 100644 --- a/tests/test_json.rs +++ b/tests/test_json.rs @@ -52,7 +52,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -98,7 +97,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -144,7 +142,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -190,7 +187,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -235,7 +231,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -281,7 +276,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -347,7 +341,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -393,7 +386,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -456,7 +448,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -532,7 +523,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -588,7 +578,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -644,7 +633,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -700,7 +688,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -728,7 +715,6 @@ mod json_report_handler { "related": [] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -822,7 +808,6 @@ mod json_report_handler { }] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out); @@ -920,7 +905,6 @@ mod json_report_handler { }] }"# .lines() - .into_iter() .map(|s| s.trim_matches(|c| c == ' ' || c == '\n')) .collect(); assert_eq!(expected, out);