From 547a930835be262ebea5e499dba7555a8a47b992 Mon Sep 17 00:00:00 2001 From: Jeffrey Seyfried Date: Mon, 4 Jul 2016 10:25:50 +0000 Subject: Revert "Change `fold_tt` and `fold_tts` to take token trees by value (instead of by reference)" This reverts commit 5bf7970ac70b4e7781e7b2f3816720aa62fac6fd. --- src/libsyntax/ext/tt/macro_rules.rs | 9 +++++---- src/libsyntax/ext/tt/transcribe.rs | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/libsyntax/ext/tt') diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index 23f0b1fff0a..84572b84963 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -28,6 +28,7 @@ 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>, @@ -262,7 +263,7 @@ pub fn compile<'cx>(cx: &'cx mut ExtCtxt, 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, tokenstream::SequenceRepetition { + TokenTree::Sequence(DUMMY_SP, Rc::new(tokenstream::SequenceRepetition { tts: vec![ TokenTree::Token(DUMMY_SP, match_lhs_tok), TokenTree::Token(DUMMY_SP, token::FatArrow), @@ -271,14 +272,14 @@ pub fn compile<'cx>(cx: &'cx mut ExtCtxt, separator: Some(token::Semi), op: tokenstream::KleeneOp::OneOrMore, num_captures: 2, - }), + })), // to phase into semicolon-termination instead of semicolon-separation - TokenTree::Sequence(DUMMY_SP, tokenstream::SequenceRepetition { + TokenTree::Sequence(DUMMY_SP, Rc::new(tokenstream::SequenceRepetition { tts: vec![TokenTree::Token(DUMMY_SP, token::Semi)], separator: None, op: tokenstream::KleeneOp::ZeroOrMore, num_captures: 0 - }), + })), ]; // Parse the macro_rules! invocation (`none` is for no interpolations): diff --git a/src/libsyntax/ext/tt/transcribe.rs b/src/libsyntax/ext/tt/transcribe.rs index 58328eb4246..9c493948d60 100644 --- a/src/libsyntax/ext/tt/transcribe.rs +++ b/src/libsyntax/ext/tt/transcribe.rs @@ -79,11 +79,11 @@ pub fn new_tt_reader_with_doc_flag(sp_diag: &Handler, let mut r = TtReader { sp_diag: sp_diag, stack: vec!(TtFrame { - forest: TokenTree::Sequence(DUMMY_SP, tokenstream::SequenceRepetition { + forest: TokenTree::Sequence(DUMMY_SP, Rc::new(tokenstream::SequenceRepetition { tts: src, // doesn't matter. This merely holds the root unzipping. separator: None, op: tokenstream::KleeneOp::ZeroOrMore, num_captures: 0 - }), + })), idx: 0, dotdotdoted: false, sep: None, -- cgit 1.4.1-3-g733a5