diff --git a/src/doc/book/macros.md b/src/doc/book/macros.md index f5a0cd5e2c6..188abb316ab 100644 --- a/src/doc/book/macros.md +++ b/src/doc/book/macros.md @@ -478,9 +478,9 @@ which syntactic form it matches. There are additional rules regarding the next token after a metavariable: -* `expr` variables may only be followed by one of: `=> , ;` -* `ty` and `path` variables may only be followed by one of: `=> , : = > as` -* `pat` variables may only be followed by one of: `=> , = if in` +* `expr` and `stmt` variables may only be followed by one of: `=> , ;` +* `ty` and `path` variables may only be followed by one of: `=> , = | ; : > [ { as where` +* `pat` variables may only be followed by one of: `=> , = | if in` * Other variables may be followed by any token. These rules provide some flexibility for Rust’s syntax to evolve without diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index bfd76db0359..82fa0f8a8b2 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -972,6 +972,7 @@ fn can_be_followed_by_any(frag: &str) -> bool { /// we expanded `expr` to include a new binary operator, we might /// break macros that were relying on that binary operator as a /// separator. +// when changing this do not forget to update doc/book/macros.md! fn is_in_follow(_: &ExtCtxt, tok: &Token, frag: &str) -> Result { if let &CloseDelim(_) = tok { // closing a token tree can never be matched by any fragment;