Skip to content

Commit 7905b79

Browse files
committed
port codemap to use dvec
1 parent de1513f commit 7905b79

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/librustsyntax/codemap.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import dvec::{dvec, extensions};
2+
13
export filename;
24
export filemap;
35
export span;
@@ -42,11 +44,11 @@ type filemap =
4244
@{name: filename, substr: file_substr, src: @str,
4345
start_pos: file_pos, mut lines: [file_pos]};
4446

45-
type codemap = @{mut files: [filemap]};
47+
type codemap = @{files: dvec<filemap>};
4648

4749
type loc = {file: filemap, line: uint, col: uint};
4850

49-
fn new_codemap() -> codemap { @{mut files: [] } }
51+
fn new_codemap() -> codemap { @{files: dvec()} }
5052

5153
fn new_filemap_w_substr(filename: filename, substr: file_substr,
5254
src: @str,
@@ -79,7 +81,7 @@ type lookup_fn = fn@(file_pos) -> uint;
7981
fn lookup_line(map: codemap, pos: uint, lookup: lookup_fn)
8082
-> {fm: filemap, line: uint}
8183
{
82-
let len = vec::len(map.files);
84+
let len = map.files.len();
8385
let mut a = 0u;
8486
let mut b = len;
8587
while b - a > 1u {

src/librustsyntax/parse.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#[doc = "The main parser interface"];
2+
import dvec::extensions;
23

34
export parse_sess;
45
export next_node_id;
@@ -152,7 +153,7 @@ fn new_parser_from_source_str(sess: parse_sess, cfg: ast::crate_cfg,
152153
let ftype = parser::SOURCE_FILE;
153154
let filemap = codemap::new_filemap_w_substr
154155
(name, ss, source, sess.chpos, sess.byte_pos);
155-
sess.cm.files += [filemap];
156+
sess.cm.files.push(filemap);
156157
let itr = @interner::mk(str::hash, str::eq);
157158
let rdr = lexer::new_reader(sess.span_diagnostic,
158159
filemap, itr);
@@ -173,7 +174,7 @@ fn new_parser_from_file(sess: parse_sess, cfg: ast::crate_cfg, path: str,
173174
};
174175
let filemap = codemap::new_filemap(path, src,
175176
sess.chpos, sess.byte_pos);
176-
sess.cm.files += [filemap];
177+
sess.cm.files.push(filemap);
177178
let itr = @interner::mk(str::hash, str::eq);
178179
let rdr = lexer::new_reader(sess.span_diagnostic, filemap, itr);
179180
ret new_parser(sess, cfg, rdr, ftype);

0 commit comments

Comments
 (0)