From 8f075ec961bea50074f96d48be851eccd94a065f Mon Sep 17 00:00:00 2001 From: Michael Wright <mikerite@lavabit.com> Date: Thu, 7 Oct 2021 06:37:56 +0200 Subject: [PATCH] Revert `update_lints` module list generating code This commit reverts the module list generation code to what it was before the change to `include!` it and generates better output. --- clippy_dev/src/update_lints.rs | 22 ++++++++++------------ clippy_lints/src/lib.rs | 5 ----- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/clippy_dev/src/update_lints.rs b/clippy_dev/src/update_lints.rs index 6ec812909f2..10d859988f6 100644 --- a/clippy_dev/src/update_lints.rs +++ b/clippy_dev/src/update_lints.rs @@ -1,6 +1,6 @@ use itertools::Itertools; use regex::Regex; -use std::collections::{BTreeSet, HashMap}; +use std::collections::HashMap; use std::ffi::OsStr; use std::fs; use std::lazy::SyncLazy; @@ -105,7 +105,7 @@ pub fn run(update_mode: UpdateMode) { "end lints modules", false, update_mode == UpdateMode::Change, - || vec![gen_modules_list(usable_lints.iter())], + || gen_modules_list(usable_lints.iter()), ) .changed; @@ -262,14 +262,13 @@ fn gen_lint_group_list<'a>(group_name: &str, lints: impl Iterator<Item = &'a Lin /// Generates the module declarations for `lints` #[must_use] -fn gen_modules_list<'a>(lints: impl Iterator<Item = &'a Lint>) -> String { - let module_names: BTreeSet<_> = lints.map(|l| &l.module).collect(); - - let mut output = GENERATED_FILE_COMMENT.to_string(); - for name in module_names { - output.push_str(&format!("mod {};\n", name)); - } - output +fn gen_modules_list<'a>(lints: impl Iterator<Item = &'a Lint>) -> Vec<String> { + lints + .map(|l| &l.module) + .unique() + .map(|module| format!("mod {};", module)) + .sorted() + .collect::<Vec<String>>() } /// Generates the list of lint links at the bottom of the CHANGELOG @@ -677,8 +676,7 @@ mod tests { Lint::new("should_assert_eq", "group1", "abc", None, "module_name"), Lint::new("incorrect_stuff", "group3", "abc", None, "another_module"), ]; - let expected = - GENERATED_FILE_COMMENT.to_string() + &["mod another_module;", "mod module_name;"].join("\n") + "\n"; + let expected = vec!["mod another_module;".to_string(), "mod module_name;".to_string()]; assert_eq!(expected, gen_modules_list(lints.iter())); } diff --git a/clippy_lints/src/lib.rs b/clippy_lints/src/lib.rs index c2376575cb8..9fc6a9e0ccc 100644 --- a/clippy_lints/src/lib.rs +++ b/clippy_lints/src/lib.rs @@ -156,10 +156,6 @@ mod deprecated_lints; mod utils; // begin lints modules, do not remove this comment, it’s used in `update_lints` -// This file was generated by `cargo dev update_lints`. -// Use that command to update this file and do not edit by hand. -// Manual edits will be overwritten. - mod absurd_extreme_comparisons; mod approx_const; mod arithmetic; @@ -390,7 +386,6 @@ mod wildcard_imports; mod write; mod zero_div_zero; mod zero_sized_map_values; - // end lints modules, do not remove this comment, it’s used in `update_lints` pub use crate::utils::conf::Conf;