diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-03 20:27:15 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-14 07:40:18 +0000 |
| commit | 5bf7970ac70b4e7781e7b2f3816720aa62fac6fd (patch) | |
| tree | ed81c7b749f4b70a42d52cdf1ea1ffd9938163b7 /src/libsyntax/ext/tt/macro_rules.rs | |
| parent | febe6a46f65cf46b42a53e65940e2b989b102678 (diff) | |
| download | rust-5bf7970ac70b4e7781e7b2f3816720aa62fac6fd.tar.gz rust-5bf7970ac70b4e7781e7b2f3816720aa62fac6fd.zip | |
Change `fold_tt` and `fold_tts` to take token trees by value (instead of by reference)
Diffstat (limited to 'src/libsyntax/ext/tt/macro_rules.rs')
| -rw-r--r-- | src/libsyntax/ext/tt/macro_rules.rs | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index bbe989b0f40..7365bf3c6b0 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -27,7 +27,6 @@ use util::small_vector::SmallVector; use std::cell::RefCell; use std::collections::{HashMap}; use std::collections::hash_map::{Entry}; -use std::rc::Rc; struct ParserAnyMacro<'a> { parser: RefCell<Parser<'a>>, @@ -246,26 +245,25 @@ pub fn compile<'cx>(cx: &'cx mut ExtCtxt, // These spans won't matter, anyways let match_lhs_tok = MatchNt(lhs_nm, token::str_to_ident("tt")); let match_rhs_tok = MatchNt(rhs_nm, token::str_to_ident("tt")); - let argument_gram = vec!( - TokenTree::Sequence(DUMMY_SP, - Rc::new(ast::SequenceRepetition { - tts: vec![ - TokenTree::Token(DUMMY_SP, match_lhs_tok), - TokenTree::Token(DUMMY_SP, token::FatArrow), - TokenTree::Token(DUMMY_SP, match_rhs_tok)], - separator: Some(token::Semi), - op: ast::KleeneOp::OneOrMore, - num_captures: 2 - })), - //to phase into semicolon-termination instead of - //semicolon-separation - TokenTree::Sequence(DUMMY_SP, - Rc::new(ast::SequenceRepetition { - tts: vec![TokenTree::Token(DUMMY_SP, token::Semi)], - separator: None, - op: ast::KleeneOp::ZeroOrMore, - num_captures: 0 - }))); + let argument_gram = vec![ + TokenTree::Sequence(DUMMY_SP, ast::SequenceRepetition { + tts: vec![ + TokenTree::Token(DUMMY_SP, match_lhs_tok), + TokenTree::Token(DUMMY_SP, token::FatArrow), + TokenTree::Token(DUMMY_SP, match_rhs_tok) + ], + separator: Some(token::Semi), + op: ast::KleeneOp::OneOrMore, + num_captures: 2, + }), + // to phase into semicolon-termination instead of semicolon-separation + TokenTree::Sequence(DUMMY_SP, ast::SequenceRepetition { + tts: vec![TokenTree::Token(DUMMY_SP, token::Semi)], + separator: None, + op: ast::KleeneOp::ZeroOrMore, + num_captures: 0, + }), + ]; // Parse the macro_rules! invocation (`none` is for no interpolations): |
