diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-04-30 11:52:07 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2012-04-30 11:52:07 -0700 |
| commit | 85fbfa25d799c98a0aadf2faef3fc17400764daf (patch) | |
| tree | 929d32253cfdbb303dadeecf7433466f6b27214c /src/librustsyntax | |
| parent | 2bb3b63ec4379b812aeceb690d78763ec55d3cbb (diff) | |
| download | rust-85fbfa25d799c98a0aadf2faef3fc17400764daf.tar.gz rust-85fbfa25d799c98a0aadf2faef3fc17400764daf.zip | |
Revert "Eliminate a copy in syntax::parse::new_parser_from_file"
This reverts commit 2bb3b63ec4379b812aeceb690d78763ec55d3cbb. (I was confused.)
Diffstat (limited to 'src/librustsyntax')
| -rw-r--r-- | src/librustsyntax/codemap.rs | 6 | ||||
| -rw-r--r-- | src/librustsyntax/ext/expand.rs | 2 | ||||
| -rw-r--r-- | src/librustsyntax/parse.rs | 27 | ||||
| -rw-r--r-- | src/librustsyntax/parse/comments.rs | 2 | ||||
| -rw-r--r-- | src/librustsyntax/parse/lexer.rs | 2 | ||||
| -rw-r--r-- | src/librustsyntax/parse/token.rs | 4 |
6 files changed, 20 insertions, 23 deletions
diff --git a/src/librustsyntax/codemap.rs b/src/librustsyntax/codemap.rs index 2340bb5ab1d..b8579f6733d 100644 --- a/src/librustsyntax/codemap.rs +++ b/src/librustsyntax/codemap.rs @@ -38,7 +38,7 @@ enum file_substr { } type filemap = - @{name: filename, substr: file_substr, src: ~str, + @{name: filename, substr: file_substr, src: @str, start_pos: file_pos, mut lines: [file_pos]}; type codemap = @{mut files: [filemap]}; @@ -48,7 +48,7 @@ type loc = {file: filemap, line: uint, col: uint}; fn new_codemap() -> codemap { @{mut files: [] } } fn new_filemap_w_substr(filename: filename, substr: file_substr, - -src: ~str, + src: @str, start_pos_ch: uint, start_pos_byte: uint) -> filemap { ret @{name: filename, substr: substr, src: src, @@ -56,7 +56,7 @@ fn new_filemap_w_substr(filename: filename, substr: file_substr, mut lines: [{ch: start_pos_ch, byte: start_pos_byte}]}; } -fn new_filemap(filename: filename, -src: ~str, +fn new_filemap(filename: filename, src: @str, start_pos_ch: uint, start_pos_byte: uint) -> filemap { ret new_filemap_w_substr(filename, fss_none, src, diff --git a/src/librustsyntax/ext/expand.rs b/src/librustsyntax/ext/expand.rs index ae4fc082141..f70a75bd96a 100644 --- a/src/librustsyntax/ext/expand.rs +++ b/src/librustsyntax/ext/expand.rs @@ -121,7 +121,7 @@ fn expand_crate(parse_sess: parse::parse_sess, with *afp}; let f = make_fold(f_pre); let cm = parse_expr_from_source_str("<core-macros>", - ~core_macros(), + @core_macros(), cfg, parse_sess); diff --git a/src/librustsyntax/parse.rs b/src/librustsyntax/parse.rs index d735af6d117..d1a997187da 100644 --- a/src/librustsyntax/parse.rs +++ b/src/librustsyntax/parse.rs @@ -73,22 +73,20 @@ fn parse_crate_from_source_file(input: str, cfg: ast::crate_cfg, ret r; } -fn parse_crate_from_source_str(name: str, source: ~str, - cfg: ast::crate_cfg, sess: parse_sess) -> @ast::crate { - // FIXME: Get rid of copy once there's a snapshot +fn parse_crate_from_source_str(name: str, source: @str, cfg: ast::crate_cfg, + sess: parse_sess) -> @ast::crate { let p = new_parser_from_source_str( - sess, cfg, name, codemap::fss_none, @(*source)); + sess, cfg, name, codemap::fss_none, source); let r = parser::parse_crate_mod(p, cfg); sess.chpos = p.reader.chpos; sess.byte_pos = sess.byte_pos + p.reader.pos; ret r; } -fn parse_expr_from_source_str(name: str, source: ~str, - cfg: ast::crate_cfg, sess: parse_sess) -> @ast::expr { - // FIXME: Get rid of copy once there's a snapshot +fn parse_expr_from_source_str(name: str, source: @str, cfg: ast::crate_cfg, + sess: parse_sess) -> @ast::expr { let p = new_parser_from_source_str( - sess, cfg, name, codemap::fss_none, @(*source)); + sess, cfg, name, codemap::fss_none, source); let r = parser::parse_expr(p); sess.chpos = p.reader.chpos; sess.byte_pos = sess.byte_pos + p.reader.pos; @@ -136,15 +134,12 @@ fn new_parser(sess: parse_sess, cfg: ast::crate_cfg, rdr: lexer::reader, restricted_keywords: token::restricted_keyword_table()} } -/* FIXME: still taking an @ b/c #ast using this. - Fix when there's a snapshot */ fn new_parser_from_source_str(sess: parse_sess, cfg: ast::crate_cfg, name: str, ss: codemap::file_substr, source: @str) -> parser { let ftype = parser::SOURCE_FILE; let filemap = codemap::new_filemap_w_substr - // FIXME: remove copy once there's a new snap - (name, ss, ~(*source), sess.chpos, sess.byte_pos); + (name, ss, source, sess.chpos, sess.byte_pos); sess.cm.files += [filemap]; let itr = @interner::mk(str::hash, str::eq); let rdr = lexer::new_reader(sess.span_diagnostic, @@ -153,10 +148,12 @@ fn new_parser_from_source_str(sess: parse_sess, cfg: ast::crate_cfg, } fn new_parser_from_file(sess: parse_sess, cfg: ast::crate_cfg, path: str, - ftype: parser::file_type) -> parser { - let src = alt io::read_whole_file_ref(path) { + ftype: parser::file_type) -> + parser { + let src = alt io::read_whole_file_str(path) { result::ok(src) { - src + // FIXME: This copy is unfortunate + @src } result::err(e) { sess.span_diagnostic.handler().fatal(e) diff --git a/src/librustsyntax/parse/comments.rs b/src/librustsyntax/parse/comments.rs index 15319e21f40..493ed7b369b 100644 --- a/src/librustsyntax/parse/comments.rs +++ b/src/librustsyntax/parse/comments.rs @@ -154,7 +154,7 @@ fn gather_comments_and_literals(span_diagnostic: diagnostic::span_handler, path: str, srdr: io::reader) -> {cmnts: [cmnt], lits: [lit]} { - let src = ~str::from_bytes(srdr.read_whole_stream()); + let src = @str::from_bytes(srdr.read_whole_stream()); let itr = @interner::mk::<str>(str::hash, str::eq); let rdr = new_reader(span_diagnostic, codemap::new_filemap(path, src, 0u, 0u), itr); diff --git a/src/librustsyntax/parse/lexer.rs b/src/librustsyntax/parse/lexer.rs index 321bf076a1e..ec9f785db2f 100644 --- a/src/librustsyntax/parse/lexer.rs +++ b/src/librustsyntax/parse/lexer.rs @@ -6,7 +6,7 @@ export reader, new_reader, next_token, is_whitespace; type reader = @{ span_diagnostic: diagnostic::span_handler, - src: ~str, + src: @str, mut col: uint, mut pos: uint, mut curr: char, diff --git a/src/librustsyntax/parse/token.rs b/src/librustsyntax/parse/token.rs index c962d4ec16c..3f9ce9d91b6 100644 --- a/src/librustsyntax/parse/token.rs +++ b/src/librustsyntax/parse/token.rs @@ -124,7 +124,7 @@ fn to_str(in: interner<str>, t: token) -> str { /* Literals */ LIT_INT(c, ast::ty_char) { - // FIXME: escape. (#2306) + // FIXME: escape. let mut tmp = "'"; str::push_char(tmp, c as char); str::push_char(tmp, '\''); @@ -140,7 +140,7 @@ fn to_str(in: interner<str>, t: token) -> str { ret interner::get::<str>(in, s) + ast_util::float_ty_to_str(t); } - LIT_STR(s) { // FIXME: escape. (#2306) + LIT_STR(s) { // FIXME: escape. ret "\"" + interner::get::<str>(in, s) + "\""; } |
