]> git.lizzy.rs Git - rust.git/commitdiff
Stripping trailing commas and spaces from `vec!` elements (#1219)
authorBekh-Ivanov Aleksey <bekh6ex@users.noreply.github.com>
Mon, 14 Nov 2016 04:42:15 +0000 (07:42 +0300)
committerNick Cameron <nrc@ncameron.org>
Mon, 14 Nov 2016 04:42:15 +0000 (17:42 +1300)
* Stripping trailing commas and spaces from `vec!` elements

* Stripping trailing commas and spaces ONLY from `vec!` elements

* Added comment

src/macros.rs
tests/source/macros.rs
tests/target/macros.rs

index dd301ad9de7b6fd115b0de85e069acb2bb9e9c39..250fd81099cea785c987f22db8f670fdee7a1cde 100644 (file)
@@ -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;
+                }
             }
         }
     }
index ca28d5c625b5735d5d137fbdcfddc414331fc12a..5b6eb53daec0f307a6afbcac8d44fc338125e9f2 100644 (file)
@@ -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!{ () };
index 79a42524939f45678d015d4bc2bf66156c4c086c..e5a0fc9731ceaecaddbb4f65f65abc0c6be5570e 100644 (file)
@@ -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!{ () };