Skip to content

Commit c1f3ec0

Browse files
committed
---
yaml --- r: 147919 b: refs/heads/try2 c: a7f7482 h: refs/heads/master i: 147917: e5db47b 147915: 8d9b1b6 147911: 9f0477d 147903: 4d59844 v: v3
1 parent 664ebe7 commit c1f3ec0

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 497b63ddf044e43173f83110a4ffb4c61413c524
8+
refs/heads/try2: a7f7482e792936f22f1123759b7df57358d66c1c
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/libsyntax/ext/tt/transcribe.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ use parse::token::{EOF, INTERPOLATED, IDENT, Token, nt_ident};
1717
use parse::token::{ident_to_str};
1818
use parse::lexer::TokenAndSpan;
1919

20-
use std::cell::RefCell;
20+
use std::cell::{Cell, RefCell};
2121
use std::hashmap::HashMap;
2222
use std::option;
2323

2424
///an unzipping of `token_tree`s
2525
struct TtFrame {
2626
forest: @~[ast::token_tree],
27-
idx: uint,
27+
idx: Cell<uint>,
2828
dotdotdoted: bool,
2929
sep: Option<Token>,
3030
up: Option<@mut TtFrame>,
@@ -54,7 +54,7 @@ pub fn new_tt_reader(sp_diag: @SpanHandler,
5454
sp_diag: sp_diag,
5555
stack: RefCell::new(@mut TtFrame {
5656
forest: @src,
57-
idx: 0u,
57+
idx: Cell::new(0u),
5858
dotdotdoted: false,
5959
sep: None,
6060
up: option::None
@@ -76,7 +76,7 @@ pub fn new_tt_reader(sp_diag: @SpanHandler,
7676
fn dup_tt_frame(f: @mut TtFrame) -> @mut TtFrame {
7777
@mut TtFrame {
7878
forest: @(*f.forest).clone(),
79-
idx: f.idx,
79+
idx: f.idx.clone(),
8080
dotdotdoted: f.dotdotdoted,
8181
sep: f.sep.clone(),
8282
up: match f.up {
@@ -181,7 +181,7 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
181181
loop {
182182
{
183183
let mut stack = r.stack.borrow_mut();
184-
if stack.get().idx < stack.get().forest.len() {
184+
if stack.get().idx.get() < stack.get().forest.len() {
185185
break;
186186
}
187187
}
@@ -209,12 +209,12 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
209209
}
210210

211211
r.stack.set(tt_f);
212-
r.stack.get().idx += 1u;
212+
r.stack.get().idx.set(r.stack.get().idx.get() + 1u);
213213
}
214214
}
215215

216216
} else { /* repeat */
217-
r.stack.get().idx = 0u;
217+
r.stack.get().idx.set(0u);
218218
{
219219
let mut repeat_idx = r.repeat_idx.borrow_mut();
220220
repeat_idx.get()[repeat_idx.get().len() - 1u] += 1u;
@@ -231,11 +231,11 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
231231
loop { /* because it's easiest, this handles `tt_delim` not starting
232232
with a `tt_tok`, even though it won't happen */
233233
// XXX(pcwalton): Bad copy.
234-
match r.stack.get().forest[r.stack.get().idx].clone() {
234+
match r.stack.get().forest[r.stack.get().idx.get()].clone() {
235235
tt_delim(tts) => {
236236
r.stack.set(@mut TtFrame {
237237
forest: tts,
238-
idx: 0u,
238+
idx: Cell::new(0u),
239239
dotdotdoted: false,
240240
sep: None,
241241
up: option::Some(r.stack.get())
@@ -245,7 +245,7 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
245245
tt_tok(sp, tok) => {
246246
r.cur_span.set(sp);
247247
r.cur_tok.set(tok);
248-
r.stack.get().idx += 1u;
248+
r.stack.get().idx.set(r.stack.get().idx.get() + 1u);
249249
return ret_val;
250250
}
251251
tt_seq(sp, tts, sep, zerok) => {
@@ -272,7 +272,7 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
272272
once");
273273
}
274274

275-
r.stack.get().idx += 1u;
275+
r.stack.get().idx.set(r.stack.get().idx.get() + 1u);
276276
return tt_next_token(r);
277277
} else {
278278
{
@@ -282,7 +282,7 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
282282
repeat_idx.get().push(0u);
283283
r.stack.set(@mut TtFrame {
284284
forest: tts,
285-
idx: 0u,
285+
idx: Cell::new(0u),
286286
dotdotdoted: true,
287287
sep: sep,
288288
up: Some(r.stack.get())
@@ -301,14 +301,14 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
301301
matched_nonterminal(nt_ident(~sn,b)) => {
302302
r.cur_span.set(sp);
303303
r.cur_tok.set(IDENT(sn,b));
304-
r.stack.get().idx += 1u;
304+
r.stack.get().idx.set(r.stack.get().idx.get() + 1u);
305305
return ret_val;
306306
}
307307
matched_nonterminal(ref other_whole_nt) => {
308308
// XXX(pcwalton): Bad copy.
309309
r.cur_span.set(sp);
310310
r.cur_tok.set(INTERPOLATED((*other_whole_nt).clone()));
311-
r.stack.get().idx += 1u;
311+
r.stack.get().idx.set(r.stack.get().idx.get() + 1u);
312312
return ret_val;
313313
}
314314
matched_seq(..) => {

0 commit comments

Comments
 (0)