From 4854e19cf1d8e43695b0b8521b63740cb60d64ee Mon Sep 17 00:00:00 2001 From: Jeremy Fitzhardinge Date: Sat, 9 Sep 2023 11:30:23 -0700 Subject: [PATCH] Use serde_json::to_writer for JsonEmitter::emit Avoids an unnecessary intermediate string. --- compiler/rustc_errors/src/json.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/rustc_errors/src/json.rs b/compiler/rustc_errors/src/json.rs index 7b92ce95f830b..ec4ec28d03f95 100644 --- a/compiler/rustc_errors/src/json.rs +++ b/compiler/rustc_errors/src/json.rs @@ -141,11 +141,11 @@ impl JsonEmitter { fn emit(&mut self, val: EmitTyped<'_>) -> io::Result<()> { if self.pretty { - writeln!(self.dst, "{}", serde_json::to_string_pretty(&val).unwrap()) + serde_json::to_writer_pretty(&mut *self.dst, &val)? } else { - writeln!(self.dst, "{}", serde_json::to_string(&val).unwrap()) - } - .and_then(|_| self.dst.flush()) + serde_json::to_writer(&mut *self.dst, &val)? + }; + self.dst.flush() } }