]> git.lizzy.rs Git - rust.git/blobdiff - clippy_dev/src/update_lints.rs
Shrink the size of Rvalue by 16 bytes
[rust.git] / clippy_dev / src / update_lints.rs
index d30d6f97a2f75b88c7a14427d19a98e588bbd64d..edf6c5f57a49766d44f8a353c55937ac0b015354 100644 (file)
@@ -14,28 +14,15 @@ 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 mut file_change = replace_region_in_file(
-        Path::new("src/lintlist/mod.rs"),
-        "begin lint list",
-        "end lint list",
-        false,
-        update_mode == UpdateMode::Change,
-        || {
-            format!("pub static ref ALL_LINTS: Vec<Lint> = vec!{:#?};", sorted_usable_lints)
-                .lines()
-                .map(ToString::to_string)
-                .collect::<Vec<_>>()
-        },
-    )
-    .changed;
+    let usable_lint_count = round_to_fifty(usable_lints.len());
+
+    let mut file_change = false;
 
     file_change |= replace_region_in_file(
         Path::new("README.md"),
@@ -61,7 +48,7 @@ pub fn run(update_mode: UpdateMode) {
         "<!-- end autogenerated links to lint list -->",
         false,
         update_mode == UpdateMode::Change,
-        || gen_changelog_lint_list(lint_list.clone()),
+        || gen_changelog_lint_list(usable_lints.iter().chain(deprecated_lints.iter())),
     )
     .changed;
 
@@ -71,7 +58,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 +68,7 @@ pub fn run(update_mode: UpdateMode) {
         "end register lints",
         false,
         update_mode == UpdateMode::Change,
-        || gen_register_lint_list(&lint_list),
+        || gen_register_lint_list(internal_lints.iter(), usable_lints.iter()),
     )
     .changed;
 
@@ -91,7 +78,7 @@ pub fn run(update_mode: UpdateMode) {
         "end lints modules",
         false,
         update_mode == UpdateMode::Change,
-        || gen_modules_list(lint_list.clone()),
+        || gen_modules_list(usable_lints.iter()),
     )
     .changed;
 
@@ -104,13 +91,9 @@ 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();
+            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)
         },
@@ -125,7 +108,7 @@ pub fn run(update_mode: UpdateMode) {
             r#"\]\);"#,
             false,
             update_mode == UpdateMode::Change,
-            || gen_lint_group_list(lints.clone()),
+            || gen_lint_group_list(lints.iter()),
         )
         .changed;
     }
@@ -140,8 +123,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());