From: Bekh-Ivanov Aleksey Date: Mon, 14 Nov 2016 04:42:15 +0000 (+0300) Subject: Stripping trailing commas and spaces from `vec!` elements (#1219) X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=935286755cbe08ba6beea31b3b8a83cd166a85f2;p=rust.git Stripping trailing commas and spaces from `vec!` elements (#1219) * Stripping trailing commas and spaces from `vec!` elements * Stripping trailing commas and spaces ONLY from `vec!` elements * Added comment --- diff --git a/src/macros.rs b/src/macros.rs index dd301ad9de7..250fd81099c 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 ca28d5c625b..5b6eb53daec 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 79a42524939..e5a0fc9731c 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!{ () };