about summary refs log tree commit diff
path: root/src/librustsyntax
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2012-04-30 11:52:07 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-04-30 11:52:07 -0700
commit85fbfa25d799c98a0aadf2faef3fc17400764daf (patch)
tree929d32253cfdbb303dadeecf7433466f6b27214c /src/librustsyntax
parent2bb3b63ec4379b812aeceb690d78763ec55d3cbb (diff)
downloadrust-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.rs6
-rw-r--r--src/librustsyntax/ext/expand.rs2
-rw-r--r--src/librustsyntax/parse.rs27
-rw-r--r--src/librustsyntax/parse/comments.rs2
-rw-r--r--src/librustsyntax/parse/lexer.rs2
-rw-r--r--src/librustsyntax/parse/token.rs4
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) + "\"";
       }