diff --git a/src/macros.rs b/src/macros.rs index dd301ad9de7b..250fd81099ce 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -114,7 +114,12 @@ pub fn rewrite_macro(mac: &ast::Mac, parser.bump(); if parser.token == Token::Eof { - return None; + // vec! is a special case of bracket macro which should be formated as an array. + if macro_name == "vec!" { + break; + } else { + return None; + } } } } diff --git a/tests/source/macros.rs b/tests/source/macros.rs index ca28d5c625b5..5b6eb53daec0 100644 --- a/tests/source/macros.rs +++ b/tests/source/macros.rs @@ -28,6 +28,15 @@ fn main() { vec! [a /* comment */]; + // Trailing spaces after a comma + vec![ + a, + ]; + + unknown_bracket_macro__comma_should_not_be_stripped![ + a, + ]; + foo(makro!(1, 3)); hamkaas!{ () }; diff --git a/tests/target/macros.rs b/tests/target/macros.rs index 79a42524939f..e5a0fc9731ce 100644 --- a/tests/target/macros.rs +++ b/tests/target/macros.rs @@ -34,6 +34,13 @@ fn main() { vec![a /* comment */]; + // Trailing spaces after a comma + vec![a]; + + unknown_bracket_macro__comma_should_not_be_stripped![ + a, + ]; + foo(makro!(1, 3)); hamkaas!{ () };