From 759b8a8e7dbe4e9ada9f33847ab8d698ee020165 Mon Sep 17 00:00:00 2001 From: Jeffrey Seyfried Date: Tue, 5 Jul 2016 08:21:25 +0000 Subject: Allow macro-expanded macros in trailing expression positions to expand into statements: ```rust macro_rules! m { () => { let x = 1; x } } macro_rules! n { () => { m!() //< This can now expand into statements }} fn main() { n!(); } ``` and revert needless fallout fixes. --- src/libsyntax/parse/parser.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index b2cbe252344..454320337ed 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -4066,7 +4066,8 @@ impl<'a> Parser<'a> { /// (or the lack thereof) -- c.f. `parse_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 { + if mac.1 != MacStmtStyle::NoBraces || + self.token == token::Semi || self.token == token::Eof { stmt.node = StmtKind::Mac(mac); } else { let (mac, _style, attrs) = mac.unwrap(); -- cgit 1.4.1-3-g733a5