From d91b256fe54b5ac2095c4417407497b0739c8b29 Mon Sep 17 00:00:00 2001 From: Alex Burka Date: Tue, 15 Dec 2015 20:48:25 -0500 Subject: [PATCH] change macro ambiguity example from ty to ident The previous example had no chance of compiling in either form, due to the restrictive follow set for `ty`. This one has the desired behavior: http://is.gd/kYdw4g (well, I don't exactly desire this behavior at all, but it's true at least :p ) --- src/doc/book/macros.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/doc/book/macros.md b/src/doc/book/macros.md index f7f27858cd2..e4a900a2b1a 100644 --- a/src/doc/book/macros.md +++ b/src/doc/book/macros.md @@ -485,10 +485,10 @@ These rules provide some flexibility for Rust’s syntax to evolve without breaking existing macros. The macro system does not deal with parse ambiguity at all. For example, the -grammar `$($t:ty)* $e:expr` will always fail to parse, because the parser would -be forced to choose between parsing `$t` and parsing `$e`. Changing the +grammar `$($i:ident)* $e:expr` will always fail to parse, because the parser would +be forced to choose between parsing `$i` and parsing `$e`. Changing the invocation syntax to put a distinctive token in front can solve the problem. In -this case, you can write `$(T $t:ty)* E $e:exp`. +this case, you can write `$(I $i:ident)* E $e:expr`. [item]: ../reference.html#items -- 2.44.0