]> git.lizzy.rs Git - rust.git/commitdiff
Allow trailing commas in if_let_chain
authorManish Goregaokar <manishsmail@gmail.com>
Sat, 26 Mar 2016 22:54:42 +0000 (04:24 +0530)
committerManish Goregaokar <manishsmail@gmail.com>
Sat, 26 Mar 2016 22:54:42 +0000 (04:24 +0530)
src/utils/mod.rs

index 09fb1475b0cfecd1413e4a9dbcd74d2880dd813c..0389c3d56c009b92ec6f5ec99a4450e98b82bc46 100644 (file)
@@ -55,6 +55,7 @@
 pub const TRANSMUTE_PATH: [&'static str; 3] = ["core", "intrinsics", "transmute"];
 pub const VEC_FROM_ELEM_PATH: [&'static str; 3] = ["std", "vec", "from_elem"];
 pub const VEC_PATH: [&'static str; 3] = ["collections", "vec", "Vec"];
+pub const BOX_PATH: [&'static str; 3] = ["std", "boxed", "Box"];
 
 /// Produce a nested chain of if-lets and ifs from the patterns:
 ///
@@ -90,6 +91,11 @@ macro_rules! if_let_chain {
            $block
         }
     };
+    ([let $pat:pat = $expr:expr,], $block:block) => {
+        if let $pat = $expr {
+           $block
+        }
+    };
     ([$expr:expr, $($tt:tt)+], $block:block) => {
         if $expr {
            if_let_chain!{ [$($tt)+], $block }
@@ -100,6 +106,11 @@ macro_rules! if_let_chain {
            $block
         }
     };
+    ([$expr:expr,], $block:block) => {
+        if $expr {
+           $block
+        }
+    };
 }
 
 /// Returns true if the two spans come from differing expansions (i.e. one is from a macro and one