diff options
| author | Jason Newcomb <jsnewcomb@pm.me> | 2025-04-15 13:25:46 -0400 |
|---|---|---|
| committer | Jason Newcomb <jsnewcomb@pm.me> | 2025-05-12 17:07:53 -0400 |
| commit | 063612196416cb437650cd4d706996046157997c (patch) | |
| tree | 99319cadd65d9bc9c9748f80cb6f25dd0c0c2f13 /clippy_dev/src | |
| parent | a9beb8b68d5bc7e66636fdab0ecf21af793e4b7f (diff) | |
| download | rust-063612196416cb437650cd4d706996046157997c.tar.gz rust-063612196416cb437650cd4d706996046157997c.zip | |
clippy_dev: Remove print option from `update_lints`
Diffstat (limited to 'clippy_dev/src')
| -rw-r--r-- | clippy_dev/src/main.rs | 13 | ||||
| -rw-r--r-- | clippy_dev/src/update_lints.rs | 105 |
2 files changed, 20 insertions, 98 deletions
diff --git a/clippy_dev/src/main.rs b/clippy_dev/src/main.rs index 73248d72d04..5dce0be742b 100644 --- a/clippy_dev/src/main.rs +++ b/clippy_dev/src/main.rs @@ -27,13 +27,7 @@ fn main() { allow_no_vcs, } => dogfood::dogfood(fix, allow_dirty, allow_staged, allow_no_vcs), DevCommand::Fmt { check, verbose } => fmt::run(check, verbose), - DevCommand::UpdateLints { print_only, check } => { - if print_only { - update_lints::print_lints(); - } else { - update_lints::update(utils::UpdateMode::from_check(check)); - } - }, + DevCommand::UpdateLints { check } => update_lints::update(utils::UpdateMode::from_check(check)), DevCommand::NewLint { pass, name, @@ -146,11 +140,6 @@ enum DevCommand { /// * all lints are registered in the lint store UpdateLints { #[arg(long)] - /// Print a table of lints to STDOUT - /// - /// This does not include deprecated and internal lints. (Does not modify any files) - print_only: bool, - #[arg(long)] /// Checks that `cargo dev update_lints` has been run. Used on CI. check: bool, }, diff --git a/clippy_dev/src/update_lints.rs b/clippy_dev/src/update_lints.rs index 09e97491c51..0c861b72935 100644 --- a/clippy_dev/src/update_lints.rs +++ b/clippy_dev/src/update_lints.rs @@ -2,7 +2,7 @@ use crate::utils::{ File, FileAction, FileUpdater, RustSearcher, Token, UpdateMode, UpdateStatus, panic_file, update_text_region_fn, }; use itertools::Itertools; -use std::collections::{HashMap, HashSet}; +use std::collections::HashSet; use std::fmt::Write; use std::fs::OpenOptions; use std::ops::Range; @@ -106,24 +106,6 @@ pub fn generate_lint_files( ); } -pub fn print_lints() { - let lints = find_lint_decls(); - let lint_count = lints.len(); - let grouped_by_lint_group = Lint::by_lint_group(lints.into_iter()); - - for (lint_group, mut lints) in grouped_by_lint_group { - println!("\n## {lint_group}"); - - lints.sort_by_key(|l| l.name.clone()); - - for lint in lints { - println!("* [{}]({DOCS_LINK}#{}) ({})", lint.name, lint.name, lint.desc); - } - } - - println!("there are {lint_count} lints"); -} - fn round_to_fifty(count: usize) -> usize { count / 50 * 50 } @@ -133,19 +115,10 @@ fn round_to_fifty(count: usize) -> usize { pub struct Lint { pub name: String, pub group: String, - pub desc: String, pub module: String, pub declaration_range: Range<usize>, } -impl Lint { - /// Returns the lints in a `HashMap`, grouped by the different lint groups - #[must_use] - fn by_lint_group(lints: impl Iterator<Item = Self>) -> HashMap<String, Vec<Self>> { - lints.map(|lint| (lint.group.to_string(), lint)).into_group_map() - } -} - #[derive(Clone, PartialEq, Eq, Debug)] pub struct DeprecatedLint { pub name: String, @@ -185,7 +158,6 @@ pub fn find_lint_decls() -> Vec<Lint> { let mut contents = String::new(); for (file, module) in read_src_with_module("clippy_lints/src".as_ref()) { parse_clippy_lint_decls( - file.path(), File::open_read_to_cleared_string(file.path(), &mut contents), &module, &mut lints, @@ -230,7 +202,7 @@ fn read_src_with_module(src_root: &Path) -> impl use<'_> + Iterator<Item = (DirE } /// Parse a source file looking for `declare_clippy_lint` macro invocations. -fn parse_clippy_lint_decls(path: &Path, contents: &str, module: &str, lints: &mut Vec<Lint>) { +fn parse_clippy_lint_decls(contents: &str, module: &str, lints: &mut Vec<Lint>) { #[allow(clippy::enum_glob_use)] use Token::*; #[rustfmt::skip] @@ -239,21 +211,18 @@ fn parse_clippy_lint_decls(path: &Path, contents: &str, module: &str, lints: &mu Bang, OpenBrace, AnyDoc, // #[clippy::version = "version"] Pound, OpenBracket, Ident("clippy"), DoubleColon, Ident("version"), Eq, LitStr, CloseBracket, - // pub NAME, GROUP, "description" - Ident("pub"), CaptureIdent, Comma, CaptureIdent, Comma, CaptureLitStr, + // pub NAME, GROUP, + Ident("pub"), CaptureIdent, Comma, CaptureIdent, Comma, ]; let mut searcher = RustSearcher::new(contents); while searcher.find_token(Ident("declare_clippy_lint")) { let start = searcher.pos() as usize - "declare_clippy_lint".len(); - let (mut name, mut group, mut desc) = ("", "", ""); - if searcher.match_tokens(DECL_TOKENS, &mut [&mut name, &mut group, &mut desc]) - && searcher.find_token(CloseBrace) - { + let (mut name, mut group) = ("", ""); + if searcher.match_tokens(DECL_TOKENS, &mut [&mut name, &mut group]) && searcher.find_token(CloseBrace) { lints.push(Lint { name: name.to_lowercase(), group: group.into(), - desc: parse_str_single_line(path, desc), module: module.into(), declaration_range: start..searcher.pos() as usize, }); @@ -397,61 +366,25 @@ mod tests { } "#; let mut result = Vec::new(); - parse_clippy_lint_decls("".as_ref(), CONTENTS, "module_name", &mut result); + parse_clippy_lint_decls(CONTENTS, "module_name", &mut result); for r in &mut result { r.declaration_range = Range::default(); } let expected = vec![ - Lint::new( - "ptr_arg", - "style", - "\"really long text\"", - "module_name", - Range::default(), - ), - Lint::new( - "doc_markdown", - "pedantic", - "\"single line\"", - "module_name", - Range::default(), - ), + Lint { + name: "ptr_arg".into(), + group: "style".into(), + module: "module_name".into(), + declaration_range: Range::default(), + }, + Lint { + name: "doc_markdown".into(), + group: "pedantic".into(), + module: "module_name".into(), + declaration_range: Range::default(), + }, ]; assert_eq!(expected, result); } - - #[test] - fn test_by_lint_group() { - let lints = vec![ - Lint::new("should_assert_eq", "group1", "\"abc\"", "module_name", Range::default()), - Lint::new( - "should_assert_eq2", - "group2", - "\"abc\"", - "module_name", - Range::default(), - ), - Lint::new("incorrect_match", "group1", "\"abc\"", "module_name", Range::default()), - ]; - let mut expected: HashMap<String, Vec<Lint>> = HashMap::new(); - expected.insert( - "group1".to_string(), - vec![ - Lint::new("should_assert_eq", "group1", "\"abc\"", "module_name", Range::default()), - Lint::new("incorrect_match", "group1", "\"abc\"", "module_name", Range::default()), - ], - ); - expected.insert( - "group2".to_string(), - vec![Lint::new( - "should_assert_eq2", - "group2", - "\"abc\"", - "module_name", - Range::default(), - )], - ); - assert_eq!(expected, Lint::by_lint_group(lints.into_iter())); - } } |
