diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index add10612cd8c..9f069cb17ed9 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -997,15 +997,18 @@ fn is_in_follow(_: &ExtCtxt, tok: &Token, frag: &str) -> Result { }, "pat" => { match *tok { - FatArrow | Comma | Eq => Ok(true), - Ident(i, _) if i.name.as_str() == "if" || i.name.as_str() == "in" => Ok(true), + FatArrow | Comma | Eq | BinOp(token::Or) => Ok(true), + Ident(i, _) if (i.name.as_str() == "if" || + i.name.as_str() == "in") => Ok(true), _ => Ok(false) } }, "path" | "ty" => { match *tok { - Comma | FatArrow | Colon | Eq | Gt | Semi => Ok(true), - Ident(i, _) if i.name.as_str() == "as" => Ok(true), + OpenDelim(token::DelimToken::Brace) | + Comma | FatArrow | Colon | Eq | Gt | Semi | BinOp(token::Or) => Ok(true), + Ident(i, _) if (i.name.as_str() == "as" || + i.name.as_str() == "where") => Ok(true), _ => Ok(false) } },