diff options
| author | Eduard Burtescu <edy.burt@gmail.com> | 2014-08-31 01:45:11 +0300 |
|---|---|---|
| committer | Eduard Burtescu <edy.burt@gmail.com> | 2014-08-31 01:45:11 +0300 |
| commit | a9c3109a6a79430729154498019b37591da5989a (patch) | |
| tree | 0c6132b9bb52f32843074b33f89ba9f6e89cdcb4 /src/libsyntax | |
| parent | f2973665935161bb2b2eca3f41c33a4fd2fe82c4 (diff) | |
| download | rust-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.rs | 10 |
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 { |
