Skip to content

Commit af06fba

Browse files
committed
---
yaml --- r: 3855 b: refs/heads/master c: 60cffd7 h: refs/heads/master i: 3853: 655790d 3851: 68a8d8b 3847: 68fddce 3839: 6e467bf v: v3
1 parent 47412cb commit af06fba

File tree

3 files changed

+49
-81
lines changed

3 files changed

+49
-81
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: a190a2c68eb0606b4617bea999796ea9a9ae06a6
2+
refs/heads/master: 60cffd711655d4755f825a8495d2d1629bc10e98

trunk/src/comp/syntax/parse/lexer.rs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -606,13 +606,13 @@ fn consume_non_eol_whitespace(&reader rdr) {
606606
}
607607

608608
fn consume_whitespace_counting_blank_lines(&reader rdr,
609-
&mutable vec[cmnt] comments) {
609+
&mutable cmnt[] comments) {
610610
while (is_whitespace(rdr.curr()) && !rdr.is_eof()) {
611611
if (rdr.curr() == '\n' && rdr.next() == '\n') {
612612
log ">>> blank-line comment";
613613
let vec[str] v = [];
614-
comments += [rec(style=blank_line, lines=v,
615-
pos=rdr.get_chpos())];
614+
comments += ~[rec(style=blank_line, lines=v,
615+
pos=rdr.get_chpos())];
616616
}
617617
rdr.bump();
618618
}
@@ -706,12 +706,12 @@ fn peeking_at_comment(&reader rdr) -> bool {
706706
}
707707

708708
fn consume_comment(&reader rdr, bool code_to_the_left,
709-
&mutable vec[cmnt] comments) {
709+
&mutable cmnt[] comments) {
710710
log ">>> consume comment";
711711
if (rdr.curr() == '/' && rdr.next() == '/') {
712-
vec::push[cmnt](comments, read_line_comments(rdr, code_to_the_left));
712+
comments += ~[read_line_comments(rdr, code_to_the_left)];
713713
} else if (rdr.curr() == '/' && rdr.next() == '*') {
714-
vec::push[cmnt](comments, read_block_comment(rdr, code_to_the_left));
714+
comments += ~[read_block_comment(rdr, code_to_the_left)];
715715
} else { fail; }
716716
log "<<< consume comment";
717717
}
@@ -732,14 +732,14 @@ fn is_lit(&token::token t) -> bool {
732732

733733
type lit = rec(str lit, uint pos);
734734

735-
fn gather_comments_and_literals(&codemap::codemap cm, str path) ->
736-
rec(vec[cmnt] cmnts, vec[lit] lits) {
735+
fn gather_comments_and_literals(&codemap::codemap cm, str path)
736+
-> rec(cmnt[] cmnts, lit[] lits) {
737737
auto srdr = io::file_reader(path);
738738
auto src = str::unsafe_from_bytes(srdr.read_whole_stream());
739739
auto itr = @interner::mk[str](str::hash, str::eq);
740740
auto rdr = new_reader(cm, src, codemap::new_filemap(path, 0u), itr);
741-
let vec[cmnt] comments = [];
742-
let vec[lit] literals = [];
741+
let cmnt[] comments = ~[];
742+
let lit[] literals = ~[];
743743
let bool first_read = true;
744744
while (!rdr.is_eof()) {
745745
while (true) {
@@ -757,9 +757,8 @@ fn gather_comments_and_literals(&codemap::codemap cm, str path) ->
757757
}
758758
auto tok = next_token(rdr);
759759
if (is_lit(tok)) {
760-
vec::push[lit](literals,
761-
rec(lit=rdr.get_mark_str(),
762-
pos=rdr.get_mark_chpos()));
760+
literals += ~[rec(lit=rdr.get_mark_str(),
761+
pos=rdr.get_mark_chpos())];
763762
}
764763
log "tok: " + token::to_str(rdr, tok);
765764
first_read = false;

trunk/src/comp/syntax/print/pprust.rs

Lines changed: 36 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -43,26 +43,26 @@ fn no_ann() -> pp_ann {
4343
type ps =
4444
@rec(pp::printer s,
4545
option::t[codemap] cm,
46-
option::t[vec[lexer::cmnt]] comments,
47-
option::t[vec[lexer::lit]] literals,
46+
option::t[lexer::cmnt[]] comments,
47+
option::t[lexer::lit[]] literals,
4848
mutable uint cur_cmnt,
4949
mutable uint cur_lit,
50-
mutable vec[pp::breaks] boxes,
50+
mutable pp::breaks[] boxes,
5151
pp_ann ann);
5252

5353
fn ibox(&ps s, uint u) {
54-
vec::push(s.boxes, pp::inconsistent);
54+
s.boxes += ~[pp::inconsistent];
5555
pp::ibox(s.s, u);
5656
}
5757

58-
fn end(&ps s) { vec::pop(s.boxes); pp::end(s.s); }
58+
fn end(&ps s) { ivec::pop(s.boxes); pp::end(s.s); }
5959

6060
fn rust_printer(io::writer writer) -> ps {
61-
let vec[pp::breaks] boxes = [];
61+
let pp::breaks[] boxes = ~[];
6262
ret @rec(s=pp::mk_printer(writer, default_columns),
6363
cm=none[codemap],
64-
comments=none[vec[lexer::cmnt]],
65-
literals=none[vec[lexer::lit]],
64+
comments=none[lexer::cmnt[]],
65+
literals=none[lexer::lit[]],
6666
mutable cur_cmnt=0u,
6767
mutable cur_lit=0u,
6868
mutable boxes=boxes,
@@ -75,7 +75,7 @@ const uint default_columns = 78u;
7575

7676
fn print_crate(&codemap cm, @ast::crate crate, str filename,
7777
io::writer out, &pp_ann ann) {
78-
let vec[pp::breaks] boxes = [];
78+
let pp::breaks[] boxes = ~[];
7979
auto r = lexer::gather_comments_and_literals(cm, filename);
8080
auto s =
8181
@rec(s=pp::mk_printer(out, default_columns),
@@ -134,12 +134,12 @@ fn attribute_to_str(&ast::attribute attr) -> str {
134134
}
135135

136136
fn cbox(&ps s, uint u) {
137-
vec::push(s.boxes, pp::consistent);
137+
s.boxes += ~[pp::consistent];
138138
pp::cbox(s.s, u);
139139
}
140140

141141
fn box(&ps s, uint u, pp::breaks b) {
142-
vec::push(s.boxes, b);
142+
s.boxes += ~[b];
143143
pp::box(s.s, u, b);
144144
}
145145

@@ -197,17 +197,7 @@ fn synth_comment(&ps s, str text) {
197197
word(s.s, "*/");
198198
}
199199

200-
fn commasep[IN](&ps s, breaks b, vec[IN] elts, fn(&ps, &IN) op) {
201-
box(s, 0u, b);
202-
auto first = true;
203-
for (IN elt in elts) {
204-
if (first) { first = false; } else { word_space(s, ","); }
205-
op(s, elt);
206-
}
207-
end(s);
208-
}
209-
210-
fn commasep_ivec[IN](&ps s, breaks b, &IN[] elts, fn(&ps, &IN) op) {
200+
fn commasep[IN](&ps s, breaks b, &IN[] elts, fn(&ps, &IN) op) {
211201
box(s, 0u, b);
212202
auto first = true;
213203
for (IN elt in elts) {
@@ -218,29 +208,9 @@ fn commasep_ivec[IN](&ps s, breaks b, &IN[] elts, fn(&ps, &IN) op) {
218208
}
219209

220210

221-
fn commasep_cmnt[IN](&ps s, breaks b, vec[IN] elts, fn(&ps, &IN) op,
211+
fn commasep_cmnt[IN](&ps s, breaks b, &IN[] elts, fn(&ps, &IN) op,
222212
fn(&IN) -> codemap::span get_span) {
223213
box(s, 0u, b);
224-
auto len = vec::len[IN](elts);
225-
auto i = 0u;
226-
for (IN elt in elts) {
227-
maybe_print_comment(s, get_span(elt).hi);
228-
op(s, elt);
229-
i += 1u;
230-
if (i < len) {
231-
word(s.s, ",");
232-
maybe_print_trailing_comment(s, get_span(elt),
233-
some(get_span(elts.(i)).hi));
234-
space_if_not_hardbreak(s);
235-
}
236-
}
237-
end(s);
238-
}
239-
240-
// TODO: Remove me.
241-
fn commasep_cmnt_ivec[IN](&ps s, breaks b, &IN[] elts, fn(&ps, &IN) op,
242-
fn(&IN) -> codemap::span get_span) {
243-
box(s, 0u, b);
244214
auto len = ivec::len[IN](elts);
245215
auto i = 0u;
246216
for (IN elt in elts) {
@@ -259,7 +229,7 @@ fn commasep_cmnt_ivec[IN](&ps s, breaks b, &IN[] elts, fn(&ps, &IN) op,
259229

260230
fn commasep_exprs(&ps s, breaks b, &(@ast::expr)[] exprs) {
261231
fn expr_span(&@ast::expr expr) -> codemap::span { ret expr.span; }
262-
commasep_cmnt_ivec(s, b, exprs, print_expr, expr_span);
232+
commasep_cmnt(s, b, exprs, print_expr, expr_span);
263233
}
264234

265235
fn print_mod(&ps s, ast::_mod _mod, &ast::attribute[] attrs) {
@@ -321,7 +291,7 @@ fn print_type(&ps s, &ast::ty ty) {
321291
case (ast::ty_tup(?elts)) {
322292
word(s.s, "tup");
323293
popen(s);
324-
commasep_ivec(s, inconsistent, elts, print_mt);
294+
commasep(s, inconsistent, elts, print_mt);
325295
pclose(s);
326296
}
327297
case (ast::ty_rec(?fields)) {
@@ -335,7 +305,7 @@ fn print_type(&ps s, &ast::ty ty) {
335305
end(s);
336306
}
337307
fn get_span(&ast::ty_field f) -> codemap::span { ret f.span; }
338-
commasep_cmnt_ivec(s, consistent, fields, print_field, get_span);
308+
commasep_cmnt(s, consistent, fields, print_field, get_span);
339309
pclose(s);
340310
}
341311
case (ast::ty_fn(?proto, ?inputs, ?output, ?cf, ?constrs)) {
@@ -492,7 +462,7 @@ fn print_item(&ps s, &@ast::item item) {
492462
fn print_variant_arg(&ps s, &ast::variant_arg arg) {
493463
print_type(s, *arg.ty);
494464
}
495-
commasep_ivec(s, consistent, v.node.args,
465+
commasep(s, consistent, v.node.args,
496466
print_variant_arg);
497467
pclose(s);
498468
}
@@ -516,7 +486,7 @@ fn print_item(&ps s, &@ast::item item) {
516486
end(s);
517487
}
518488
fn get_span(&ast::obj_field f) -> codemap::span { ret f.ty.span; }
519-
commasep_cmnt_ivec(s, consistent, _obj.fields, print_field,
489+
commasep_cmnt(s, consistent, _obj.fields, print_field,
520490
get_span);
521491
pclose(s);
522492
space(s.s);
@@ -724,7 +694,7 @@ fn print_expr(&ps s, &@ast::expr expr) {
724694
fn get_span(&ast::elt elt) -> codemap::span { ret elt.expr.span; }
725695
word(s.s, "tup");
726696
popen(s);
727-
commasep_cmnt_ivec(s, inconsistent, exprs, printElt, get_span);
697+
commasep_cmnt(s, inconsistent, exprs, printElt, get_span);
728698
pclose(s);
729699
}
730700
case (ast::expr_rec(?fields, ?wth)) {
@@ -741,7 +711,7 @@ fn print_expr(&ps s, &@ast::expr expr) {
741711
}
742712
word(s.s, "rec");
743713
popen(s);
744-
commasep_cmnt_ivec(s, consistent, fields, print_field, get_span);
714+
commasep_cmnt(s, consistent, fields, print_field, get_span);
745715
alt (wth) {
746716
case (some(?expr)) {
747717
if (ivec::len(fields) > 0u) { space(s.s); }
@@ -774,7 +744,7 @@ fn print_expr(&ps s, &@ast::expr expr) {
774744
word_nbsp(s, "bind");
775745
print_expr(s, func);
776746
popen(s);
777-
commasep_ivec(s, inconsistent, args, print_opt);
747+
commasep(s, inconsistent, args, print_opt);
778748
pclose(s);
779749
}
780750
case (ast::expr_spawn(_, _, ?e, ?es)) {
@@ -1039,7 +1009,7 @@ fn print_expr(&ps s, &@ast::expr expr) {
10391009
alt (anon_obj.fields) {
10401010
case (none) { }
10411011
case (some(?fields)) {
1042-
commasep_cmnt_ivec(s, consistent, fields, print_field,
1012+
commasep_cmnt(s, consistent, fields, print_field,
10431013
get_span);
10441014
}
10451015
}
@@ -1126,7 +1096,7 @@ fn print_path(&ps s, &ast::path path) {
11261096
}
11271097
if (ivec::len(path.node.types) > 0u) {
11281098
word(s.s, "[");
1129-
commasep_ivec(s, inconsistent, path.node.types, print_boxed_type);
1099+
commasep(s, inconsistent, path.node.types, print_boxed_type);
11301100
word(s.s, "]");
11311101
}
11321102
}
@@ -1143,7 +1113,7 @@ fn print_pat(&ps s, &@ast::pat pat) {
11431113
print_path(s, path);
11441114
if (ivec::len(args) > 0u) {
11451115
popen(s);
1146-
commasep_ivec(s, inconsistent, args, print_pat);
1116+
commasep(s, inconsistent, args, print_pat);
11471117
pclose(s);
11481118
}
11491119
}
@@ -1159,7 +1129,7 @@ fn print_pat(&ps s, &@ast::pat pat) {
11591129
fn get_span(&ast::field_pat f) -> codemap::span {
11601130
ret f.pat.span;
11611131
}
1162-
commasep_cmnt_ivec(s, consistent, fields, print_field, get_span);
1132+
commasep_cmnt(s, consistent, fields, print_field, get_span);
11631133
if (etc) {
11641134
if (ivec::len(fields) != 0u) { word_space(s, ","); }
11651135
word(s.s, "_");
@@ -1195,7 +1165,7 @@ fn print_fn_args_and_ret(&ps s, &ast::fn_decl decl) {
11951165
word(s.s, x.ident);
11961166
end(s);
11971167
}
1198-
commasep_ivec(s, inconsistent, decl.inputs, print_arg);
1168+
commasep(s, inconsistent, decl.inputs, print_arg);
11991169
pclose(s);
12001170
maybe_print_comment(s, decl.output.span.lo);
12011171
if (decl.output.node != ast::ty_nil) {
@@ -1217,7 +1187,7 @@ fn print_type_params(&ps s, &ast::ty_param[] params) {
12171187
if (ivec::len(params) > 0u) {
12181188
word(s.s, "[");
12191189
fn printParam(&ps s, &ast::ty_param param) { word(s.s, param); }
1220-
commasep_ivec(s, inconsistent, params, printParam);
1190+
commasep(s, inconsistent, params, printParam);
12211191
word(s.s, "]");
12221192
}
12231193
}
@@ -1236,7 +1206,7 @@ fn print_meta_item(&ps s, &@ast::meta_item item) {
12361206
case (ast::meta_list(?name, ?items)) {
12371207
word(s.s, name);
12381208
popen(s);
1239-
commasep_ivec(s, consistent, items, print_meta_item);
1209+
commasep(s, consistent, items, print_meta_item);
12401210
pclose(s);
12411211
}
12421212
}
@@ -1252,7 +1222,7 @@ fn print_view_item(&ps s, &@ast::view_item item) {
12521222
word(s.s, id);
12531223
if (ivec::len(mta) > 0u) {
12541224
popen(s);
1255-
commasep_ivec(s, consistent, mta, print_meta_item);
1225+
commasep(s, consistent, mta, print_meta_item);
12561226
pclose(s);
12571227
}
12581228
}
@@ -1348,7 +1318,7 @@ fn print_ty_fn(&ps s, &ast::proto proto, &option::t[str] id,
13481318
print_alias(s, input.node.mode);
13491319
print_type(s, *input.node.ty);
13501320
}
1351-
commasep_ivec(s, inconsistent, inputs, print_arg);
1321+
commasep(s, inconsistent, inputs, print_arg);
13521322
pclose(s);
13531323
maybe_print_comment(s, output.span.lo);
13541324
if (output.node != ast::ty_nil) {
@@ -1396,7 +1366,7 @@ fn print_remaining_comments(&ps s) {
13961366
}
13971367

13981368
fn in_cbox(&ps s) -> bool {
1399-
auto len = vec::len(s.boxes);
1369+
auto len = ivec::len(s.boxes);
14001370
if (len == 0u) { ret false; }
14011371
ret s.boxes.(len - 1u) == pp::consistent;
14021372
}
@@ -1446,7 +1416,7 @@ fn lit_to_str(&@ast::lit l) -> str { be to_str(l, print_literal); }
14461416
fn next_lit(&ps s) -> option::t[lexer::lit] {
14471417
alt (s.literals) {
14481418
case (some(?lits)) {
1449-
if (s.cur_lit < vec::len(lits)) {
1419+
if (s.cur_lit < ivec::len(lits)) {
14501420
ret some(lits.(s.cur_lit));
14511421
} else { ret none[lexer::lit]; }
14521422
}
@@ -1541,7 +1511,7 @@ fn to_str[T](&T t, fn(&ps, &T) f) -> str {
15411511
fn next_comment(&ps s) -> option::t[lexer::cmnt] {
15421512
alt (s.comments) {
15431513
case (some(?cmnts)) {
1544-
if (s.cur_cmnt < vec::len(cmnts)) {
1514+
if (s.cur_cmnt < ivec::len(cmnts)) {
15451515
ret some(cmnts.(s.cur_cmnt));
15461516
} else { ret none[lexer::cmnt]; }
15471517
}
@@ -1579,12 +1549,11 @@ fn uint_to_str(&uint i) -> str { ret uint::str(i); }
15791549
15801550
fn ast_constr_to_str(&@ast::constr c) -> str {
15811551
// TODO: Remove this vec->ivec conversion.
1582-
auto cag_ivec = ~[];
1552+
auto cags = ~[];
15831553
for (@ast::constr_arg_general[uint] cag in c.node.args) {
1584-
cag_ivec += ~[cag];
1554+
cags += ~[cag];
15851555
}
1586-
ret ast::path_to_str(c.node.path) +
1587-
constr_args_to_str(uint_to_str, cag_ivec);
1556+
ret ast::path_to_str(c.node.path) + constr_args_to_str(uint_to_str, cags);
15881557
}
15891558
15901559
fn ast_constrs_str(&(@ast::constr)[] constrs) -> str {

0 commit comments

Comments
 (0)