summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorSteven Fackler <sfackler@gmail.com>2014-04-22 21:54:48 -0700
committerSteven Fackler <sfackler@gmail.com>2014-04-23 21:48:22 -0700
commit1452c9c04a11dd6ad6890b811b411ef80b0c5b6f (patch)
tree654ab7e9b42e77ad89bbe85a26b9fafe4e79df14 /src/libsyntax/parse/parser.rs
parent3d05e7f9cdd76887de75f46b5e47d2685bec6520 (diff)
downloadrust-1452c9c04a11dd6ad6890b811b411ef80b0c5b6f.tar.gz
rust-1452c9c04a11dd6ad6890b811b411ef80b0c5b6f.zip
Allow attributes on match arms
RFC: 0008-match-arm-attributes
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
-rw-r--r--src/libsyntax/parse/parser.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 8808312bed7..f30d756d854 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2539,6 +2539,7 @@ impl<'a> Parser<'a> {
         self.commit_expr_expecting(discriminant, token::LBRACE);
         let mut arms: Vec<Arm> = Vec::new();
         while self.token != token::RBRACE {
+            let attrs = self.parse_outer_attributes();
             let pats = self.parse_pats();
             let mut guard = None;
             if self.eat_keyword(keywords::If) {
@@ -2557,7 +2558,12 @@ impl<'a> Parser<'a> {
                 self.eat(&token::COMMA);
             }
 
-            arms.push(ast::Arm { pats: pats, guard: guard, body: expr });
+            arms.push(ast::Arm {
+                attrs: attrs,
+                pats: pats,
+                guard: guard,
+                body: expr
+            });
         }
         let hi = self.span.hi;
         self.bump();