diff options
| author | David Tolnay <dtolnay@gmail.com> | 2024-05-12 13:39:43 -0700 |
|---|---|---|
| committer | David Tolnay <dtolnay@gmail.com> | 2024-05-12 13:42:37 -0700 |
| commit | 94cc82c088b9301dc4dcf84ce127a64bbd77dddf (patch) | |
| tree | 1078496076e4fce603edc376fb6f0c5f1d7adfc7 | |
| parent | 68854b798ebda70014985d26722e7f6820254658 (diff) | |
| download | rust-94cc82c088b9301dc4dcf84ce127a64bbd77dddf.tar.gz rust-94cc82c088b9301dc4dcf84ce127a64bbd77dddf.zip | |
Pretty-print let-else with added parenthesization when needed
| -rw-r--r-- | compiler/rustc_ast_pretty/src/pprust/state.rs | 6 | ||||
| -rw-r--r-- | 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; }; } |
