From 94cc82c088b9301dc4dcf84ce127a64bbd77dddf Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 12 May 2024 13:39:43 -0700 Subject: [PATCH] Pretty-print let-else with added parenthesization when needed --- compiler/rustc_ast_pretty/src/pprust/state.rs | 6 +++++- tests/ui/unpretty/let-else.stdout | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_ast_pretty/src/pprust/state.rs b/compiler/rustc_ast_pretty/src/pprust/state.rs index 2c176828c84..b7bdb2e14a6 100644 --- a/compiler/rustc_ast_pretty/src/pprust/state.rs +++ b/compiler/rustc_ast_pretty/src/pprust/state.rs @@ -1238,7 +1238,11 @@ impl<'a> State<'a> { if let Some((init, els)) = loc.kind.init_else_opt() { self.nbsp(); self.word_space("="); - self.print_expr(init, FixupContext::default()); + self.print_expr_cond_paren( + init, + els.is_some() && classify::expr_trailing_brace(init).is_some(), + FixupContext::default(), + ); if let Some(els) = els { self.cbox(INDENT_UNIT); self.ibox(INDENT_UNIT); diff --git a/tests/ui/unpretty/let-else.stdout b/tests/ui/unpretty/let-else.stdout index 5f6972cd429..4bc4d9e085f 100644 --- a/tests/ui/unpretty/let-else.stdout +++ b/tests/ui/unpretty/let-else.stdout @@ -11,5 +11,5 @@ macro_rules! expr { ($e:expr) => { $e }; } fn main() { let _ = 1 + 1 else { return; }; - let _ = loop {} else { return; }; + let _ = (loop {}) else { return; }; }