From d18ce7cea04afcff4e0674f6298ac753602f6715 Mon Sep 17 00:00:00 2001 From: Alex Macleod Date: Sat, 3 Aug 2024 12:10:28 +0000 Subject: [PATCH] lintcheck: force warn all lints --- .github/workflows/lintcheck.yml | 4 ++-- lintcheck/src/config.rs | 8 ++++---- lintcheck/src/main.rs | 25 ++++++++++--------------- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/.github/workflows/lintcheck.yml b/.github/workflows/lintcheck.yml index 6a5139b6dc0b..3cbda0b38243 100644 --- a/.github/workflows/lintcheck.yml +++ b/.github/workflows/lintcheck.yml @@ -58,7 +58,7 @@ jobs: - name: Run lintcheck if: steps.cache-json.outputs.cache-hit != 'true' - run: ./target/debug/lintcheck --format json --warn-all --crates-toml ./lintcheck/ci_crates.toml + run: ./target/debug/lintcheck --format json --all-lints --crates-toml ./lintcheck/ci_crates.toml - name: Upload base JSON uses: actions/upload-artifact@v4 @@ -86,7 +86,7 @@ jobs: run: cargo build --manifest-path=lintcheck/Cargo.toml - name: Run lintcheck - run: ./target/debug/lintcheck --format json --warn-all --crates-toml ./lintcheck/ci_crates.toml + run: ./target/debug/lintcheck --format json --all-lints --crates-toml ./lintcheck/ci_crates.toml - name: Upload head JSON uses: actions/upload-artifact@v4 diff --git a/lintcheck/src/config.rs b/lintcheck/src/config.rs index 6bec1753fc7b..bd4fcc5e337e 100644 --- a/lintcheck/src/config.rs +++ b/lintcheck/src/config.rs @@ -33,13 +33,13 @@ pub(crate) struct LintcheckConfig { /// Runs cargo clippy --fix and checks if all suggestions apply #[clap(long, conflicts_with("max_jobs"))] pub fix: bool, - /// Apply a filter to only collect specified lints, this also overrides `allow` attributes + /// Apply a filter to only collect specified lints #[clap(long = "filter", value_name = "clippy_lint_name", use_value_delimiter = true)] pub lint_filter: Vec, - /// Set all lints to the "warn" lint level, even resitriction ones. Usually, - /// it's better to use `--filter` instead + /// Check all Clippy lints, by default only `clippy::all` and `clippy::pedantic` are checked. + /// Usually, it's better to use `--filter` instead #[clap(long, conflicts_with("lint_filter"))] - pub warn_all: bool, + pub all_lints: bool, /// Set the output format of the log file #[clap(long, short, default_value = "text")] pub format: OutputFormat, diff --git a/lintcheck/src/main.rs b/lintcheck/src/main.rs index 0dd62ded293c..e6170d6bbdfa 100644 --- a/lintcheck/src/main.rs +++ b/lintcheck/src/main.rs @@ -284,29 +284,24 @@ fn lintcheck(config: LintcheckConfig) { let (crates, recursive_options) = read_crates(&config.sources_toml_path); let counter = AtomicUsize::new(1); - let mut lint_level_args: Vec = vec![]; + let mut lint_level_args: Vec = vec!["--cap-lints=allow".into()]; if config.lint_filter.is_empty() { - lint_level_args.push("--cap-lints=warn".to_string()); - - // Set allow-by-default to warn - if config.warn_all { - [ + let groups = if config.all_lints { + &[ + "clippy::all", "clippy::cargo", "clippy::nursery", "clippy::pedantic", "clippy::restriction", - ] + ][..] + } else { + &["clippy::all", "clippy::pedantic"] + }; + groups .iter() - .map(|group| format!("--warn={group}")) + .map(|group| format!("--force-warn={group}")) .collect_into(&mut lint_level_args); - } else { - ["clippy::cargo", "clippy::pedantic"] - .iter() - .map(|group| format!("--warn={group}")) - .collect_into(&mut lint_level_args); - } } else { - lint_level_args.push("--cap-lints=allow".to_string()); config .lint_filter .iter()