about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2020-12-23 15:31:18 +0100
committerMatthias Krüger <matthias.krueger@famsik.de>2021-01-23 02:18:11 +0100
commit4ec9cb84bb96ff11eba9d0a8961ddfea2fa1ba65 (patch)
tree45b4f36cbbf2699a40921ebd28313b425a0abeb0
parent6c5bf2778fa09fd3a79dd2fa76779c07ee182391 (diff)
downloadrust-4ec9cb84bb96ff11eba9d0a8961ddfea2fa1ba65.tar.gz
rust-4ec9cb84bb96ff11eba9d0a8961ddfea2fa1ba65.zip
cargo dev crater: refactor to get a list of all ClippyWarnings
-rw-r--r--clippy_dev/src/crater.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/clippy_dev/src/crater.rs b/clippy_dev/src/crater.rs
index db0dd3641f1..96b94c2c652 100644
--- a/clippy_dev/src/crater.rs
+++ b/clippy_dev/src/crater.rs
@@ -106,7 +106,7 @@ impl CrateSource {
 }
 
 impl Crate {
-    fn run_clippy_lints(&self, cargo_clippy_path: &PathBuf) -> Vec<String> {
+    fn run_clippy_lints(&self, cargo_clippy_path: &PathBuf) -> Vec<ClippyWarning> {
         println!("Linting {} {}...", &self.name, &self.version);
         let cargo_clippy_path = std::fs::canonicalize(cargo_clippy_path).unwrap();
 
@@ -136,11 +136,7 @@ impl Crate {
             .filter(|line| line.contains("clippy::"))
             .map(|json_msg| parse_json_message(json_msg, &self))
             .collect();
-
-        let mut output: Vec<String> = warnings.iter().map(|warning| warning.to_string()).collect();
-        // sort messages alphabetically to avoid noise in the logs
-        output.sort();
-        output
+        warnings
     }
 }
 
@@ -219,17 +215,18 @@ pub fn run() {
     );
 
     // download and extract the crates, then run clippy on them and collect clippys warnings
+    // flatten into one big list of warnings
 
-    let clippy_lint_results: Vec<Vec<String>> = read_crates()
+    let clippy_warnings: Vec<ClippyWarning> = read_crates()
         .into_iter()
         .map(|krate| krate.download_and_extract())
         .map(|krate| krate.run_clippy_lints(&cargo_clippy_path))
+        .flatten()
         .collect();
 
-    let mut all_warnings: Vec<String> = clippy_lint_results.into_iter().flatten().collect();
-    all_warnings.sort();
+    let all_msgs: Vec<String> = clippy_warnings.iter().map(|warning| warning.to_string()).collect();
 
     // save the text into mini-crater/logs.txt
-    let text = all_warnings.join("");
+    let text = all_msgs.join("");
     write("mini-crater/logs.txt", text).unwrap();
 }