about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-12-27 13:22:57 -0800
committerPatrick Walton <pcwalton@mimiga.net>2014-01-03 14:01:57 -0800
commitbac8b2e557109b24277d28a00aea5448fc6933f6 (patch)
tree76e46cbf7dc1cb05f41be7fe76658036f8ccbdcb
parentdb21387ad0465323d4d5171f15d9989944d32603 (diff)
downloadrust-bac8b2e557109b24277d28a00aea5448fc6933f6.tar.gz
rust-bac8b2e557109b24277d28a00aea5448fc6933f6.zip
libsyntax: De-`@mut` `TtReader::repeat_len`
-rw-r--r--src/libsyntax/ext/tt/transcribe.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/libsyntax/ext/tt/transcribe.rs b/src/libsyntax/ext/tt/transcribe.rs
index 0c0571616d0..53ee114e806 100644
--- a/src/libsyntax/ext/tt/transcribe.rs
+++ b/src/libsyntax/ext/tt/transcribe.rs
@@ -37,7 +37,7 @@ pub struct TtReader {
     /* for MBE-style macro transcription */
     priv interpolations: RefCell<HashMap<Ident, @named_match>>,
     priv repeat_idx: RefCell<~[uint]>,
-    repeat_len: ~[uint],
+    priv repeat_len: RefCell<~[uint]>,
     /* cached: */
     cur_tok: Token,
     cur_span: Span
@@ -64,7 +64,7 @@ pub fn new_tt_reader(sp_diag: @mut SpanHandler,
             Some(x) => RefCell::new(x),
         },
         repeat_idx: RefCell::new(~[]),
-        repeat_len: ~[],
+        repeat_len: RefCell::new(~[]),
         /* dummy values, never read: */
         cur_tok: EOF,
         cur_span: DUMMY_SP
@@ -189,7 +189,8 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
         /* done with this set; pop or repeat? */
         if ! r.stack.dotdotdoted || {
                 let repeat_idx = r.repeat_idx.borrow();
-                *repeat_idx.get().last() == *r.repeat_len.last() - 1
+                let repeat_len = r.repeat_len.borrow();
+                *repeat_idx.get().last() == *repeat_len.get().last() - 1
             } {
 
             match r.stack.up {
@@ -201,8 +202,9 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
                 if r.stack.dotdotdoted {
                     {
                         let mut repeat_idx = r.repeat_idx.borrow_mut();
+                        let mut repeat_len = r.repeat_len.borrow_mut();
                         repeat_idx.get().pop();
-                        r.repeat_len.pop();
+                        repeat_len.get().pop();
                     }
                 }
 
@@ -275,7 +277,8 @@ pub fn tt_next_token(r: &mut TtReader) -> TokenAndSpan {
                 } else {
                     {
                         let mut repeat_idx = r.repeat_idx.borrow_mut();
-                        r.repeat_len.push(len);
+                        let mut repeat_len = r.repeat_len.borrow_mut();
+                        repeat_len.get().push(len);
                         repeat_idx.get().push(0u);
                         r.stack = @mut TtFrame {
                             forest: tts,