From cadffa74df1589011cc7e9c3a19e196e2c73b46c Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 8 Feb 2021 10:03:57 -0800 Subject: [PATCH] Fix pretty printer macro_rules with semicolon. --- compiler/rustc_ast_pretty/src/pprust/state.rs | 3 +++ src/test/pretty/macro_rules.rs | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 src/test/pretty/macro_rules.rs diff --git a/compiler/rustc_ast_pretty/src/pprust/state.rs b/compiler/rustc_ast_pretty/src/pprust/state.rs index 7f4775bf41a52..01e234c9be972 100644 --- a/compiler/rustc_ast_pretty/src/pprust/state.rs +++ b/compiler/rustc_ast_pretty/src/pprust/state.rs @@ -1311,6 +1311,9 @@ impl<'a> State<'a> { true, item.span, ); + if macro_def.body.need_semicolon() { + self.word(";"); + } } } self.ann.post(self, AnnNode::Item(item)) diff --git a/src/test/pretty/macro_rules.rs b/src/test/pretty/macro_rules.rs new file mode 100644 index 0000000000000..da223d164f9b0 --- /dev/null +++ b/src/test/pretty/macro_rules.rs @@ -0,0 +1,19 @@ +// pp-exact + +macro_rules! brace { () => { } ; } + +macro_rules! bracket[() => { } ;]; + +macro_rules! paren(() => { } ;); + +macro_rules! matcher_brackets { + (paren) => { } ; (bracket) => { } ; (brace) => { } ; +} + +macro_rules! all_fragments { + ($ b : block, $ e : expr, $ i : ident, $ it : item, $ l : lifetime, $ lit + : literal, $ m : meta, $ p : pat, $ pth : path, $ s : stmt, $ tt : tt, $ + ty : ty, $ vis : vis) => { } ; +} + +fn main() { }