diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2020-12-23 15:31:18 +0100 |
|---|---|---|
| committer | Matthias Krüger <matthias.krueger@famsik.de> | 2021-01-23 02:18:11 +0100 |
| commit | 4ec9cb84bb96ff11eba9d0a8961ddfea2fa1ba65 (patch) | |
| tree | 45b4f36cbbf2699a40921ebd28313b425a0abeb0 | |
| parent | 6c5bf2778fa09fd3a79dd2fa76779c07ee182391 (diff) | |
| download | rust-4ec9cb84bb96ff11eba9d0a8961ddfea2fa1ba65.tar.gz rust-4ec9cb84bb96ff11eba9d0a8961ddfea2fa1ba65.zip | |
cargo dev crater: refactor to get a list of all ClippyWarnings
| -rw-r--r-- | clippy_dev/src/crater.rs | 17 |
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(); } |
