Attach TokenStream to ast::Block

A `Block` does not have outer attributes, so we only capture tokens when
parsing a `macro_rules!` matcher
This commit is contained in:
Aaron Hill 2020-08-21 17:52:52 -04:00
parent ad3a6f70ac
commit de4bd9f0f8
No known key found for this signature in database
GPG key ID: B4087E510E98B164
8 changed files with 21 additions and 4 deletions

View file

@ -540,6 +540,7 @@ pub struct Block {
/// Distinguishes between `unsafe { ... }` and `{ ... }`.
pub rules: BlockCheckMode,
pub span: Span,
pub tokens: Option<TokenStream>,
}
/// A match pattern.

View file

@ -871,7 +871,7 @@ pub fn noop_visit_mt<T: MutVisitor>(MutTy { ty, mutbl: _ }: &mut MutTy, vis: &mu
}
pub fn noop_visit_block<T: MutVisitor>(block: &mut P<Block>, vis: &mut T) {
let Block { id, stmts, rules: _, span } = block.deref_mut();
let Block { id, stmts, rules: _, span, tokens: _ } = block.deref_mut();
vis.visit_id(id);
stmts.flat_map_in_place(|stmt| vis.flat_map_stmt(stmt));
vis.visit_span(span);