From ac150d016b760d06352e02adf030ce7e6c948005 Mon Sep 17 00:00:00 2001 From: Caleb Cartwright Date: Sat, 10 Aug 2019 22:49:14 -0500 Subject: [PATCH] fix: remove trailing space with empty dyn macro arg (#3737) --- src/macros.rs | 4 ++-- src/overflow.rs | 1 + tests/source/issue-3709.rs | 10 ++++++++++ tests/target/issue-3709.rs | 10 ++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 tests/source/issue-3709.rs create mode 100644 tests/target/issue-3709.rs diff --git a/src/macros.rs b/src/macros.rs index b2146437f151..de8e0651cd89 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -303,9 +303,9 @@ fn rewrite_macro_inner( if DelimToken::Brace != style { loop { - if let Some(arg) = parse_macro_arg(&mut parser) { + if let Some(arg) = check_keyword(&mut parser) { arg_vec.push(arg); - } else if let Some(arg) = check_keyword(&mut parser) { + } else if let Some(arg) = parse_macro_arg(&mut parser) { arg_vec.push(arg); } else { return return_macro_parse_failure_fallback(context, shape.indent, mac.span); diff --git a/src/overflow.rs b/src/overflow.rs index d8e1d0e2590b..fc0cf98ceba8 100644 --- a/src/overflow.rs +++ b/src/overflow.rs @@ -122,6 +122,7 @@ impl<'a> OverflowableItem<'a> { pub(crate) fn is_simple(&self) -> bool { match self { OverflowableItem::Expr(expr) => is_simple_expr(expr), + OverflowableItem::MacroArg(MacroArg::Keyword(..)) => true, OverflowableItem::MacroArg(MacroArg::Expr(expr)) => is_simple_expr(expr), OverflowableItem::NestedMetaItem(nested_meta_item) => match nested_meta_item { ast::NestedMetaItem::Literal(..) => true, diff --git a/tests/source/issue-3709.rs b/tests/source/issue-3709.rs new file mode 100644 index 000000000000..73c2a624e524 --- /dev/null +++ b/tests/source/issue-3709.rs @@ -0,0 +1,10 @@ +// rustfmt-edition: 2018 + +macro_rules! token { + ($t:tt) => {}; +} + +fn main() { + token!(dyn); + token!(dyn ); +} diff --git a/tests/target/issue-3709.rs b/tests/target/issue-3709.rs new file mode 100644 index 000000000000..0f3eae048d40 --- /dev/null +++ b/tests/target/issue-3709.rs @@ -0,0 +1,10 @@ +// rustfmt-edition: 2018 + +macro_rules! token { + ($t:tt) => {}; +} + +fn main() { + token!(dyn); + token!(dyn); +}