Skip to content

Commit 10145b7

Browse files
committed
port some code to use dvec
1 parent 9eda189 commit 10145b7

File tree

5 files changed

+49
-31
lines changed

5 files changed

+49
-31
lines changed

src/librustsyntax/parse.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ fn new_parser(sess: parse_sess, cfg: ast::crate_cfg, rdr: lexer::reader,
139139
mut token: tok0.tok,
140140
mut span: span0,
141141
mut last_span: span0,
142-
mut buffer: [],
142+
buffer: dvec::dvec(),
143143
mut restriction: parser::UNRESTRICTED,
144144
reader: rdr,
145145
keywords: token::keyword_table(),

src/librustsyntax/parse/parser.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import attr::{parse_outer_attrs_or_ext,
1313
parse_outer_attributes,
1414
parse_optional_meta};
1515
import common::*;
16+
import dvec::{dvec, extensions};
1617

1718
export expect;
1819
export file_type;
@@ -54,7 +55,7 @@ type parser = @{
5455
mut token: token::token,
5556
mut span: span,
5657
mut last_span: span,
57-
mut buffer: [{tok: token::token, span: span}],
58+
buffer: dvec<{tok: token::token, span: span}>,
5859
mut restriction: restriction,
5960
reader: reader,
6061
keywords: hashmap<str, ()>,
@@ -64,12 +65,12 @@ type parser = @{
6465
impl parser for parser {
6566
fn bump() {
6667
self.last_span = self.span;
67-
if vec::len(self.buffer) == 0u {
68+
if self.buffer.len() == 0u {
6869
let next = lexer::next_token(self.reader);
6970
self.token = next.tok;
7071
self.span = mk_sp(next.chpos, self.reader.chpos);
7172
} else {
72-
let next = vec::shift(self.buffer);
73+
let next = self.buffer.shift();
7374
self.token = next.tok;
7475
self.span = next.span;
7576
}
@@ -79,10 +80,10 @@ impl parser for parser {
7980
self.span = mk_sp(lo, hi);
8081
}
8182
fn look_ahead(distance: uint) -> token::token {
82-
while vec::len(self.buffer) < distance {
83+
while self.buffer.len() < distance {
8384
let next = lexer::next_token(self.reader);
8485
let sp = mk_sp(next.chpos, self.reader.chpos);
85-
vec::push(self.buffer, {tok: next.tok, span: sp});
86+
self.buffer.push({tok: next.tok, span: sp});
8687
}
8788
ret self.buffer[distance - 1u].tok;
8889
}

src/librustsyntax/print/pp.rs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import io::writer_util;
2+
import dvec::{dvec, extensions};
23

34
/*
45
* This pretty-printer is a direct reimplementation of Philip Karlton's
@@ -102,7 +103,6 @@ fn mk_printer(out: io::writer, linewidth: uint) -> printer {
102103
let token: [mut token] = vec::to_mut(vec::from_elem(n, EOF));
103104
let size: [mut int] = vec::to_mut(vec::from_elem(n, 0));
104105
let scan_stack: [mut uint] = vec::to_mut(vec::from_elem(n, 0u));
105-
let print_stack: [print_stack_elt] = [];
106106
@{out: out,
107107
buf_len: n,
108108
mut margin: linewidth as int,
@@ -117,7 +117,7 @@ fn mk_printer(out: io::writer, linewidth: uint) -> printer {
117117
mut scan_stack_empty: true,
118118
mut top: 0u,
119119
mut bottom: 0u,
120-
mut print_stack: print_stack,
120+
print_stack: dvec(),
121121
mut pending_indentation: 0}
122122
}
123123

@@ -221,7 +221,7 @@ type printer = @{
221221
mut top: uint, // index of top of scan_stack
222222
mut bottom: uint, // index of bottom of scan_stack
223223
// stack of blocks-in-progress being flushed by print
224-
mut print_stack: [print_stack_elt],
224+
print_stack: dvec<print_stack_elt>,
225225
// buffered indentation to avoid writing trailing whitespace
226226
mut pending_indentation: int
227227
};
@@ -398,11 +398,12 @@ impl printer for printer {
398398
self.pending_indentation += amount;
399399
}
400400
fn get_top() -> print_stack_elt {
401-
let n = vec::len(self.print_stack);
402-
let mut top: print_stack_elt =
403-
{offset: 0, pbreak: broken(inconsistent)};
404-
if n != 0u { top = self.print_stack[n - 1u]; }
405-
ret top;
401+
let n = self.print_stack.len();
402+
if n != 0u {
403+
self.print_stack[n - 1u]
404+
} else {
405+
{offset: 0, pbreak: broken(inconsistent)}
406+
}
406407
}
407408
fn write_str(s: str) {
408409
while self.pending_indentation > 0 {
@@ -420,16 +421,18 @@ impl printer for printer {
420421
if L > self.space {
421422
let col = self.margin - self.space + b.offset;
422423
#debug("print BEGIN -> push broken block at col %d", col);
423-
self.print_stack += [{offset: col, pbreak: broken(b.breaks)}];
424+
self.print_stack.push({offset: col,
425+
pbreak: broken(b.breaks)});
424426
} else {
425427
#debug("print BEGIN -> push fitting block");
426-
self.print_stack += [{offset: 0, pbreak: fits}];
428+
self.print_stack.push({offset: 0,
429+
pbreak: fits});
427430
}
428431
}
429432
END {
430433
#debug("print END -> pop END");
431-
assert (vec::len(self.print_stack) != 0u);
432-
vec::pop(self.print_stack);
434+
assert (self.print_stack.len() != 0u);
435+
self.print_stack.pop();
433436
}
434437
BREAK(b) {
435438
let top = self.get_top();

src/librustsyntax/print/pprust.rs

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import pp::{break_offset, word, printer,
77
inconsistent, eof};
88
import diagnostic;
99
import ast_util::operator_prec;
10+
import dvec::{dvec, extensions};
1011

1112
// The ps is stored here to prevent recursive type.
1213
enum ann_node {
@@ -29,22 +30,27 @@ type ps =
2930
literals: option<[comments::lit]>,
3031
mut cur_cmnt: uint,
3132
mut cur_lit: uint,
32-
mut boxes: [pp::breaks],
33+
boxes: dvec<pp::breaks>,
3334
ann: pp_ann};
3435

35-
fn ibox(s: ps, u: uint) { s.boxes += [pp::inconsistent]; pp::ibox(s.s, u); }
36+
fn ibox(s: ps, u: uint) {
37+
s.boxes.push(pp::inconsistent);
38+
pp::ibox(s.s, u);
39+
}
3640

37-
fn end(s: ps) { vec::pop(s.boxes); pp::end(s.s); }
41+
fn end(s: ps) {
42+
s.boxes.pop();
43+
pp::end(s.s);
44+
}
3845

3946
fn rust_printer(writer: io::writer) -> ps {
40-
let boxes: [pp::breaks] = [];
4147
ret @{s: pp::mk_printer(writer, default_columns),
4248
cm: none::<codemap>,
4349
comments: none::<[comments::cmnt]>,
4450
literals: none::<[comments::lit]>,
4551
mut cur_cmnt: 0u,
4652
mut cur_lit: 0u,
47-
mut boxes: boxes,
53+
boxes: dvec(),
4854
ann: no_ann()};
4955
}
5056

@@ -59,7 +65,6 @@ const default_columns: uint = 78u;
5965
fn print_crate(cm: codemap, span_diagnostic: diagnostic::span_handler,
6066
crate: @ast::crate, filename: str, in: io::reader,
6167
out: io::writer, ann: pp_ann) {
62-
let boxes: [pp::breaks] = [];
6368
let r = comments::gather_comments_and_literals(span_diagnostic,
6469
filename, in);
6570
let s =
@@ -69,7 +74,7 @@ fn print_crate(cm: codemap, span_diagnostic: diagnostic::span_handler,
6974
literals: some(r.lits),
7075
mut cur_cmnt: 0u,
7176
mut cur_lit: 0u,
72-
mut boxes: boxes,
77+
boxes: dvec(),
7378
ann: ann};
7479
print_crate_(s, crate);
7580
}
@@ -195,9 +200,15 @@ fn test_variant_to_str() {
195200
assert varstr == "principle_skinner";
196201
}
197202

198-
fn cbox(s: ps, u: uint) { s.boxes += [pp::consistent]; pp::cbox(s.s, u); }
203+
fn cbox(s: ps, u: uint) {
204+
s.boxes.push(pp::consistent);
205+
pp::cbox(s.s, u);
206+
}
199207

200-
fn box(s: ps, u: uint, b: pp::breaks) { s.boxes += [b]; pp::box(s.s, u, b); }
208+
fn box(s: ps, u: uint, b: pp::breaks) {
209+
s.boxes.push(b);
210+
pp::box(s.s, u, b);
211+
}
201212

202213
fn nbsp(s: ps) { word(s.s, " "); }
203214

@@ -245,7 +256,7 @@ fn is_bol(s: ps) -> bool {
245256
}
246257

247258
fn in_cbox(s: ps) -> bool {
248-
let len = vec::len(s.boxes);
259+
let len = s.boxes.len();
249260
if len == 0u { ret false; }
250261
ret s.boxes[len - 1u] == pp::consistent;
251262
}

src/rustc/middle/borrowck.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ fn check_crate(tcx: ty::ctxt,
2020
crate: @ast::crate) -> (root_map, mutbl_map) {
2121

2222
// big hack to keep this off except when I want it on
23-
let msg_level = alt os::getenv("RUST_BORROWCK") {
24-
none {tcx.sess.opts.borrowck}
25-
some(v) {option::get(uint::from_str(v))}
23+
let msg_level = if tcx.sess.opts.borrowck != 0u {
24+
tcx.sess.opts.borrowck
25+
} else {
26+
os::getenv("RUST_BORROWCK").map_default(0u) { |v|
27+
option::get(uint::from_str(v))
28+
}
2629
};
2730

2831
let bccx = @{tcx: tcx,

0 commit comments

Comments
 (0)