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.
This commit is contained in:
parent
52d485fe0d
commit
759b8a8e7d
2 changed files with 3 additions and 2 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue