Build lint lists once and the reuse them to update files
This commit is contained in:
@@ -14,14 +14,14 @@ pub enum UpdateMode {
|
||||
pub fn run(update_mode: UpdateMode) {
|
||||
let lint_list: Vec<Lint> = gather_all().collect();
|
||||
|
||||
let internal_lints = Lint::internal_lints(lint_list.clone().into_iter());
|
||||
|
||||
let usable_lints: Vec<Lint> = Lint::usable_lints(lint_list.clone().into_iter()).collect();
|
||||
let usable_lint_count = round_to_fifty(usable_lints.len());
|
||||
|
||||
let internal_lints = Lint::internal_lints(&lint_list);
|
||||
let deprecated_lints = Lint::deprecated_lints(&lint_list);
|
||||
let usable_lints = Lint::usable_lints(&lint_list);
|
||||
let mut sorted_usable_lints = usable_lints.clone();
|
||||
sorted_usable_lints.sort_by_key(|lint| lint.name.clone());
|
||||
|
||||
let usable_lint_count = round_to_fifty(usable_lints.len());
|
||||
|
||||
let mut file_change = replace_region_in_file(
|
||||
Path::new("src/lintlist/mod.rs"),
|
||||
"begin lint list",
|
||||
@@ -61,7 +61,7 @@ pub fn run(update_mode: UpdateMode) {
|
||||
"<!-- end autogenerated links to lint list -->",
|
||||
false,
|
||||
update_mode == UpdateMode::Change,
|
||||
|| gen_changelog_lint_list(&lint_list),
|
||||
|| gen_changelog_lint_list(usable_lints.iter().chain(deprecated_lints.iter())),
|
||||
)
|
||||
.changed;
|
||||
|
||||
@@ -71,7 +71,7 @@ pub fn run(update_mode: UpdateMode) {
|
||||
"end deprecated lints",
|
||||
false,
|
||||
update_mode == UpdateMode::Change,
|
||||
|| gen_deprecated(&lint_list),
|
||||
|| gen_deprecated(deprecated_lints.iter()),
|
||||
)
|
||||
.changed;
|
||||
|
||||
@@ -81,7 +81,7 @@ pub fn run(update_mode: UpdateMode) {
|
||||
"end register lints",
|
||||
false,
|
||||
update_mode == UpdateMode::Change,
|
||||
|| gen_register_lint_list(&usable_lints),
|
||||
|| gen_register_lint_list(usable_lints.iter().chain(internal_lints.iter())),
|
||||
)
|
||||
.changed;
|
||||
|
||||
@@ -91,7 +91,7 @@ pub fn run(update_mode: UpdateMode) {
|
||||
"end lints modules",
|
||||
false,
|
||||
update_mode == UpdateMode::Change,
|
||||
|| gen_modules_list(&usable_lints),
|
||||
|| gen_modules_list(usable_lints.iter()),
|
||||
)
|
||||
.changed;
|
||||
|
||||
@@ -104,15 +104,11 @@ pub fn run(update_mode: UpdateMode) {
|
||||
update_mode == UpdateMode::Change,
|
||||
|| {
|
||||
// clippy::all should only include the following lint groups:
|
||||
let all_group_lints = usable_lints
|
||||
.clone()
|
||||
.into_iter()
|
||||
.filter(|l| {
|
||||
l.group == "correctness" || l.group == "style" || l.group == "complexity" || l.group == "perf"
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
let all_group_lints = usable_lints.iter().filter(|l| {
|
||||
l.group == "correctness" || l.group == "style" || l.group == "complexity" || l.group == "perf"
|
||||
});
|
||||
|
||||
gen_lint_group_list(&all_group_lints)
|
||||
gen_lint_group_list(all_group_lints)
|
||||
},
|
||||
)
|
||||
.changed;
|
||||
@@ -125,7 +121,7 @@ pub fn run(update_mode: UpdateMode) {
|
||||
r#"\]\);"#,
|
||||
false,
|
||||
update_mode == UpdateMode::Change,
|
||||
|| gen_lint_group_list(&lints),
|
||||
|| gen_lint_group_list(lints.iter()),
|
||||
)
|
||||
.changed;
|
||||
}
|
||||
@@ -140,8 +136,8 @@ pub fn run(update_mode: UpdateMode) {
|
||||
}
|
||||
|
||||
pub fn print_lints() {
|
||||
let lint_list = gather_all();
|
||||
let usable_lints: Vec<Lint> = Lint::usable_lints(lint_list).collect();
|
||||
let lint_list: Vec<Lint> = gather_all().collect();
|
||||
let usable_lints = Lint::usable_lints(&lint_list);
|
||||
let usable_lint_count = usable_lints.len();
|
||||
let grouped_by_lint_group = Lint::by_lint_group(usable_lints.into_iter());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user