about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-07-02 09:32:23 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-07-12 04:31:39 +0000
commit57c56dd7e04bcd25ed578f27e65ec2379299f44b (patch)
tree6d09ab6a92444ccb10516eae30964f183a4cc848 /src/libsyntax/parse/parser.rs
parent6189e6cdba6d12ab65baafd95c5f8a6e0cc37937 (diff)
downloadrust-57c56dd7e04bcd25ed578f27e65ec2379299f44b.tar.gz
rust-57c56dd7e04bcd25ed578f27e65ec2379299f44b.zip
Parse macro-expanded statements like ordinary statements.
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
-rw-r--r--src/libsyntax/parse/parser.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 0dd8c199827..b2cbe252344 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -4064,7 +4064,7 @@ impl<'a> Parser<'a> {
 
     /// Finish parsing expressions that start with macros and handle trailing semicolons
     /// (or the lack thereof) -- c.f. `parse_stmt`.
-    fn finish_parsing_statement(&mut self, mut stmt: Stmt) -> PResult<'a, Stmt> {
+    pub fn finish_parsing_statement(&mut self, mut stmt: Stmt) -> PResult<'a, Stmt> {
         if let StmtKind::Mac(mac) = stmt.node {
             if mac.1 != MacStmtStyle::NoBraces || self.token == token::Semi {
                 stmt.node = StmtKind::Mac(mac);
@@ -4082,7 +4082,7 @@ impl<'a> Parser<'a> {
 
     fn handle_trailing_semicolon(&mut self, mut stmt: Stmt) -> PResult<'a, Stmt> {
         match stmt.node {
-            StmtKind::Expr(ref expr) => {
+            StmtKind::Expr(ref expr) if self.token != token::Eof => {
                 // expression without semicolon
                 if classify::expr_requires_semi_to_be_stmt(expr) {
                     // Just check for errors and recover; do not eat semicolon yet.