diff --git a/src/librustsyntax/codemap.rs b/src/librustsyntax/codemap.rs index e119ae840e6..976a5ee23eb 100644 --- a/src/librustsyntax/codemap.rs +++ b/src/librustsyntax/codemap.rs @@ -1,3 +1,5 @@ +import dvec::{dvec, extensions}; + export filename; export filemap; export span; @@ -42,11 +44,11 @@ type filemap = @{name: filename, substr: file_substr, src: @str, start_pos: file_pos, mut lines: [file_pos]}; -type codemap = @{mut files: [filemap]}; +type codemap = @{files: dvec}; type loc = {file: filemap, line: uint, col: uint}; -fn new_codemap() -> codemap { @{mut files: [] } } +fn new_codemap() -> codemap { @{files: dvec()} } fn new_filemap_w_substr(filename: filename, substr: file_substr, src: @str, @@ -79,7 +81,7 @@ type lookup_fn = fn@(file_pos) -> uint; fn lookup_line(map: codemap, pos: uint, lookup: lookup_fn) -> {fm: filemap, line: uint} { - let len = vec::len(map.files); + let len = map.files.len(); let mut a = 0u; let mut b = len; while b - a > 1u { diff --git a/src/librustsyntax/parse.rs b/src/librustsyntax/parse.rs index a1445e17212..a8000ba4ac0 100644 --- a/src/librustsyntax/parse.rs +++ b/src/librustsyntax/parse.rs @@ -1,4 +1,5 @@ #[doc = "The main parser interface"]; +import dvec::extensions; export parse_sess; export next_node_id; @@ -152,7 +153,7 @@ fn new_parser_from_source_str(sess: parse_sess, cfg: ast::crate_cfg, let ftype = parser::SOURCE_FILE; let filemap = codemap::new_filemap_w_substr (name, ss, source, sess.chpos, sess.byte_pos); - sess.cm.files += [filemap]; + sess.cm.files.push(filemap); let itr = @interner::mk(str::hash, str::eq); let rdr = lexer::new_reader(sess.span_diagnostic, filemap, itr); @@ -173,7 +174,7 @@ fn new_parser_from_file(sess: parse_sess, cfg: ast::crate_cfg, path: str, }; let filemap = codemap::new_filemap(path, src, sess.chpos, sess.byte_pos); - sess.cm.files += [filemap]; + sess.cm.files.push(filemap); let itr = @interner::mk(str::hash, str::eq); let rdr = lexer::new_reader(sess.span_diagnostic, filemap, itr); ret new_parser(sess, cfg, rdr, ftype);