diff options
| author | xFrednet <xFrednet@gmail.com> | 2024-07-20 12:30:15 +0200 |
|---|---|---|
| committer | xFrednet <xFrednet@gmail.com> | 2024-07-20 13:25:44 +0200 |
| commit | 69c3289f2b4790ac98f3bd257ebd2b6ff7d88711 (patch) | |
| tree | 81cf65b606f78212807b533fa029c8889c873d99 | |
| parent | 83c8385ad1f52f3fea94d3ad5222341a7cb968c3 (diff) | |
| download | rust-69c3289f2b4790ac98f3bd257ebd2b6ff7d88711.tar.gz rust-69c3289f2b4790ac98f3bd257ebd2b6ff7d88711.zip | |
Lintcheck: Include the crate name in the CI job summary
| -rw-r--r-- | lintcheck/src/json.rs | 10 | ||||
| -rw-r--r-- | lintcheck/src/main.rs | 1 | ||||
| -rw-r--r-- | lintcheck/src/output.rs | 10 | ||||
| -rw-r--r-- | lintcheck/src/recursive.rs | 2 |
4 files changed, 18 insertions, 5 deletions
diff --git a/lintcheck/src/json.rs b/lintcheck/src/json.rs index 534f9349091..74f36f000bd 100644 --- a/lintcheck/src/json.rs +++ b/lintcheck/src/json.rs @@ -9,6 +9,7 @@ use crate::ClippyWarning; #[derive(Deserialize, Serialize)] struct LintJson { lint: String, + krate: String, file_name: String, byte_pos: (u32, u32), file_link: String, @@ -19,6 +20,10 @@ impl LintJson { fn key(&self) -> impl Ord + '_ { (self.file_name.as_str(), self.byte_pos, self.lint.as_str()) } + + fn info_text(&self, action: &str) -> String { + format!("{action} `{}` in `{}` at {}", self.lint, self.krate, self.file_link) + } } /// Creates the log file output for [`crate::config::OutputFormat::Json`] @@ -30,6 +35,7 @@ pub(crate) fn output(clippy_warnings: Vec<ClippyWarning>) -> String { LintJson { file_name: span.file_name.clone(), byte_pos: (span.byte_start, span.byte_end), + krate: warning.krate, file_link: warning.url, lint: warning.lint, rendered: warning.diag.rendered.unwrap(), @@ -55,7 +61,7 @@ fn print_warnings(title: &str, warnings: &[LintJson]) { println!(r#"<h3 id="{title}">{title}</h3>"#); println!(); for warning in warnings { - println!("{title} `{}` at {}", warning.lint, warning.file_link); + println!("{}", warning.info_text(title)); println!(); println!("```"); println!("{}", warning.rendered.trim_end()); @@ -73,7 +79,7 @@ fn print_changed_diff(changed: &[(LintJson, LintJson)]) { println!(r#"<h3 id="changed">Changed</h3>"#); println!(); for (old, new) in changed { - println!("Changed `{}` at {}", new.lint, new.file_link); + println!("{}", new.info_text("Changed")); println!(); println!("```diff"); for change in diff::lines(old.rendered.trim_end(), new.rendered.trim_end()) { diff --git a/lintcheck/src/main.rs b/lintcheck/src/main.rs index 28b05d2460d..db1ecb9e663 100644 --- a/lintcheck/src/main.rs +++ b/lintcheck/src/main.rs @@ -189,6 +189,7 @@ impl Crate { Ok(Message::CompilerMessage(message)) => ClippyWarning::new( normalize_diag(message.message, shared_target_dir.to_str().unwrap()), &self.base_url, + &self.name, ), _ => None, }) diff --git a/lintcheck/src/output.rs b/lintcheck/src/output.rs index aadf9c162d4..48e33e656b9 100644 --- a/lintcheck/src/output.rs +++ b/lintcheck/src/output.rs @@ -53,12 +53,13 @@ impl RustcIce { pub struct ClippyWarning { pub lint: String, pub diag: Diagnostic, + pub krate: String, /// The URL that points to the file and line of the lint emission pub url: String, } impl ClippyWarning { - pub fn new(mut diag: Diagnostic, base_url: &str) -> Option<Self> { + pub fn new(mut diag: Diagnostic, base_url: &str, krate: &str) -> Option<Self> { let lint = diag.code.clone()?.code; if !(lint.contains("clippy") || diag.message.contains("clippy")) || diag.message.contains("could not read cargo metadata") @@ -90,7 +91,12 @@ impl ClippyWarning { file.clone() }; - Some(Self { lint, diag, url }) + Some(Self { + lint, + diag, + url, + krate: krate.to_string(), + }) } pub fn span(&self) -> &DiagnosticSpan { diff --git a/lintcheck/src/recursive.rs b/lintcheck/src/recursive.rs index 6817d917b93..6a662970ae8 100644 --- a/lintcheck/src/recursive.rs +++ b/lintcheck/src/recursive.rs @@ -72,7 +72,7 @@ fn process_stream( let messages = stderr .lines() .filter_map(|json_msg| serde_json::from_str::<Diagnostic>(json_msg).ok()) - .filter_map(|diag| ClippyWarning::new(diag, &base_url)); + .filter_map(|diag| ClippyWarning::new(diag, &base_url, &driver_info.package_name)); for message in messages { sender.send(message).unwrap(); |
