summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorEduard Burtescu <edy.burt@gmail.com>2014-08-31 01:45:11 +0300
committerEduard Burtescu <edy.burt@gmail.com>2014-08-31 01:45:11 +0300
commita9c3109a6a79430729154498019b37591da5989a (patch)
tree0c6132b9bb52f32843074b33f89ba9f6e89cdcb4 /src/libsyntax
parentf2973665935161bb2b2eca3f41c33a4fd2fe82c4 (diff)
downloadrust-a9c3109a6a79430729154498019b37591da5989a.tar.gz
rust-a9c3109a6a79430729154498019b37591da5989a.zip
Allow ExprLit expression macros to be used in patterns.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ext/base.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs
index b3b66a6a604..d59b20dfc4c 100644
--- a/src/libsyntax/ext/base.rs
+++ b/src/libsyntax/ext/base.rs
@@ -154,6 +154,16 @@ impl MacResult for MacExpr {
     fn make_expr(&self) -> Option<Gc<ast::Expr>> {
         Some(self.e)
     }
+    fn make_pat(&self) -> Option<Gc<ast::Pat>> {
+        match self.e.node {
+            ast::ExprLit(_) => Some(box(GC) ast::Pat {
+                id: ast::DUMMY_NODE_ID,
+                node: ast::PatLit(self.e),
+                span: self.e.span
+            }),
+            _ => None
+        }
+    }
 }
 /// A convenience type for macros that return a single pattern.
 pub struct MacPat {