1
Fork 0

Make all moves explicit in libsyntax

This commit is contained in:
Tim Chevalier 2012-09-10 18:28:00 -07:00
parent 6957af770b
commit f8b3eaae82
13 changed files with 42 additions and 39 deletions

View file

@ -255,8 +255,8 @@ fn parse(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader, ms: ~[matcher])
sp.hi)));
}
new_pos.idx += 1u;
vec::push(cur_eis, new_pos);
new_pos.idx += 1;
vec::push(cur_eis, move new_pos);
}
// can we go around again?
@ -266,18 +266,18 @@ fn parse(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader, ms: ~[matcher])
Some(t) if idx == len => { // we need a separator
if tok == t { //pass the separator
let ei_t <- ei;
ei_t.idx += 1u;
vec::push(next_eis, ei_t);
ei_t.idx += 1;
vec::push(next_eis, move ei_t);
}
}
_ => { // we don't need a separator
let ei_t <- ei;
ei_t.idx = 0u;
vec::push(cur_eis, ei_t);
ei_t.idx = 0;
vec::push(cur_eis, move ei_t);
}
}
} else {
vec::push(eof_eis, ei);
vec::push(eof_eis, move ei);
}
} else {
match copy ei.elts[idx].node {
@ -292,7 +292,7 @@ fn parse(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader, ms: ~[matcher])
new_ei.matches[idx].push(@matched_seq(~[], sp));
}
vec::push(cur_eis, new_ei);
vec::push(cur_eis, move new_ei);
}
let matches = vec::map(ei.matches, // fresh, same size:
@ -300,16 +300,19 @@ fn parse(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader, ms: ~[matcher])
let ei_t <- ei;
vec::push(cur_eis, ~{
elts: matchers, sep: sep, mut idx: 0u,
mut up: matcher_pos_up(Some(ei_t)),
matches: matches,
mut up: matcher_pos_up(Some(move ei_t)),
matches: move matches,
match_lo: match_idx_lo, match_hi: match_idx_hi,
sp_lo: sp.lo
});
}
match_nonterminal(_,_,_) => { vec::push(bb_eis, ei) }
match_nonterminal(_,_,_) => { vec::push(bb_eis, move ei) }
match_tok(t) => {
let ei_t <- ei;
if t == tok { ei_t.idx += 1u; vec::push(next_eis, ei_t)}
if t == tok {
ei_t.idx += 1;
vec::push(next_eis, move ei_t);
}
}
}
}
@ -362,7 +365,7 @@ fn parse(sess: parse_sess, cfg: ast::crate_cfg, rdr: reader, ms: ~[matcher])
}
_ => fail
}
vec::push(cur_eis,ei);
vec::push(cur_eis, move ei);
/* this would fail if zero-length tokens existed */
while rdr.peek().sp.lo < rust_parser.span.lo {