mozilla/rust — pull request #4129 by graydon (2012-12-07 00:32:50+00:00)
Title: Quote misc

This gets the new token-tree quasiquoter up to the point of being able to stand in for of `#ast` in the pipe protocol compiler; `#ast` is only there in `#[cfg(stage0)]`, whereas it's `quote_expr!` and `quote_type!` in `#[cfg(stage1)]` and `[#cfg(stage2)]`. Also makes the splicing machinery much more robust and extensible (you are allowed to splice anything that implements `ToTokens`).

While this looks like a lot of sound and noise for nothing, it enables (post-snapshot) cutting out substantial portions of the redundant macro machinery in the frontend. `#ast` and the quasiquoter is sort of the last thread holding it in place (from _last_ summer).