build: patch rules_rust process_wrapper metadata handling

Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
Max Johnson
2026-03-06 12:19:42 -08:00
parent f9491590ec
commit 18bdfb5454
2 changed files with 24 additions and 0 deletions

View File

@@ -42,6 +42,12 @@ bazel_dep(name = "rules_platform", version = "0.1.0")
bazel_dep(name = "rules_rs", version = "0.0.40")
rules_rust = use_extension("@rules_rs//rs/experimental:rules_rust.bzl", "rules_rust")
rules_rust.patch(
patches = [
"//patches:rules_rs_process_wrapper_emit_metadata.patch",
],
strip = 1,
)
use_repo(rules_rust, "rules_rust")
toolchains = use_extension("@rules_rs//rs/experimental/toolchains:module_extension.bzl", "toolchains")

View File

@@ -0,0 +1,18 @@
diff --git a/util/process_wrapper/rustc.rs b/util/process_wrapper/rustc.rs
index ddb82c9..69052ce 100644
--- a/util/process_wrapper/rustc.rs
+++ b/util/process_wrapper/rustc.rs
@@ -64,10 +64,12 @@ pub(crate) fn process_json(line: String, error_format: ErrorFormat) -> LineResult {
let parsed: JsonValue = line
.parse()
.map_err(|_| "error parsing rustc output as json".to_owned())?;
Ok(match parsed.try_into() {
+ Ok(RustcMessage::Emit(emit)) if emit == "metadata" => LineOutput::Terminate,
+ Ok(RustcMessage::Emit(_)) => LineOutput::Skip,
Ok(RustcMessage::Message(rendered)) => {
output_based_on_error_format(line, rendered, error_format)
}
- _ => LineOutput::Skip,
+ Err(()) => LineOutput::Skip,
})
}