about summary refs log tree commit diff
path: root/src/rustc
diff options
context:
space:
mode:
authorMichael Sullivan <sully@msully.net>2012-05-24 14:49:39 -0700
committerMichael Sullivan <sully@msully.net>2012-05-25 16:39:35 -0700
commit8668d06400710f9d99d1b39da847031dc3d78394 (patch)
treee9b16f7ed60e3819ed53f86d94378916f17ffb74 /src/rustc
parentd89b4c8c61b4995559c2e5b963d58b5dd599fdf3 (diff)
downloadrust-8668d06400710f9d99d1b39da847031dc3d78394.tar.gz
rust-8668d06400710f9d99d1b39da847031dc3d78394.zip
Get rid of many implicit copies as a preliminary to Issue #2448.
Diffstat (limited to 'src/rustc')
-rw-r--r--src/rustc/driver/rustc.rs2
-rw-r--r--src/rustc/metadata/encoder.rs6
-rw-r--r--src/rustc/middle/astencode.rs2
-rw-r--r--src/rustc/middle/resolve.rs4
-rw-r--r--src/rustc/middle/trans/base.rs2
-rw-r--r--src/rustc/middle/trans/type_use.rs4
6 files changed, 10 insertions, 10 deletions
diff --git a/src/rustc/driver/rustc.rs b/src/rustc/driver/rustc.rs
index 9826d65270a..a4810d36a8e 100644
--- a/src/rustc/driver/rustc.rs
+++ b/src/rustc/driver/rustc.rs
@@ -200,7 +200,7 @@ diagnostic emitter which records when we hit a fatal error. If the task
 fails without recording a fatal error then we've encountered a compiler
 bug and need to present an error.
 */
-fn monitor(f: fn~(diagnostic::emitter)) {
+fn monitor(+f: fn~(diagnostic::emitter)) {
     enum monitor_msg {
         fatal,
         done,
diff --git a/src/rustc/metadata/encoder.rs b/src/rustc/metadata/encoder.rs
index 50683ec3283..56a1371d289 100644
--- a/src/rustc/metadata/encoder.rs
+++ b/src/rustc/metadata/encoder.rs
@@ -552,7 +552,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: ebml::writer, item: @item,
                      index: @mut [entry<int>]) {
         *index += [{val: item.id, pos: ebml_w.writer.tell()}];
     }
-    let add_to_index = bind add_to_index_(item, ebml_w, index);
+    let add_to_index = bind add_to_index_(item, copy ebml_w, index);
 
     alt item.node {
       item_const(_, _) {
@@ -796,7 +796,7 @@ fn encode_info_for_items(ecx: @encode_ctxt, ebml_w: ebml::writer,
                         crate_node_id, [], "");
     visit::visit_crate(*crate, (), visit::mk_vt(@{
         visit_expr: {|_e, _cx, _v|},
-        visit_item: {|i, cx, v|
+        visit_item: {|i, cx, v, copy ebml_w|
             visit::visit_item(i, cx, v);
             alt check ecx.tcx.items.get(i.id) {
               ast_map::node_item(_, pt) {
@@ -820,7 +820,7 @@ fn encode_info_for_items(ecx: @encode_ctxt, ebml_w: ebml::writer,
               }
             }
         },
-        visit_native_item: {|ni, cx, v|
+        visit_native_item: {|ni, cx, v, copy ebml_w|
             visit::visit_native_item(ni, cx, v);
             alt check ecx.tcx.items.get(ni.id) {
               ast_map::node_native_item(_, abi, pt) {
diff --git a/src/rustc/middle/astencode.rs b/src/rustc/middle/astencode.rs
index af19496c9b8..5a43611b276 100644
--- a/src/rustc/middle/astencode.rs
+++ b/src/rustc/middle/astencode.rs
@@ -725,7 +725,7 @@ fn encode_side_tables_for_ii(ecx: @e::encode_ctxt,
                              ebml_w: ebml::writer,
                              ii: ast::inlined_item) {
     ebml_w.wr_tag(c::tag_table as uint) {||
-        visit_ids(ii, fn@(id: ast::node_id) {
+        visit_ids(ii, fn@(id: ast::node_id, copy ebml_w) {
             // Note: this will cause a copy of ebml_w, which is bad as
             // it has mut fields.  But I believe it's harmless since
             // we generate balanced EBML.
diff --git a/src/rustc/middle/resolve.rs b/src/rustc/middle/resolve.rs
index abce3067fdc..c51df5bd391 100644
--- a/src/rustc/middle/resolve.rs
+++ b/src/rustc/middle/resolve.rs
@@ -1481,7 +1481,7 @@ fn lookup_in_local_mod(e: env, node_id: node_id, sp: span, id: ident,
     alt inf.index.find(id) {
       none { }
       some(lst) {
-        let found = list_search(lst, bind lookup_in_mie(e, _, ns));
+        let found = list_search(lst, {|x| lookup_in_mie(e, x, ns)});
         if !is_none(found) {
             ret found;
         }
@@ -1511,7 +1511,7 @@ fn lookup_in_globs(e: env, globs: [glob_imp_def], sp: span, id: ident,
         }
     }
     let matches = vec::filter_map(copy globs,
-                                  bind lookup_in_mod_(e, _, sp, id, ns, dr));
+                                  {|x| lookup_in_mod_(e, x, sp, id, ns, dr)});
     if vec::len(matches) == 0u {
         ret none;
         }
diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs
index 23c27dc7c81..c4fc1b6f333 100644
--- a/src/rustc/middle/trans/base.rs
+++ b/src/rustc/middle/trans/base.rs
@@ -4020,7 +4020,7 @@ fn trans_stmt(cx: block, s: ast::stmt) -> block {
 
 // You probably don't want to use this one. See the
 // next three functions instead.
-fn new_block(cx: fn_ctxt, parent: block_parent, kind: block_kind,
+fn new_block(cx: fn_ctxt, parent: block_parent, +kind: block_kind,
              name: str, opt_node_info: option<node_info>) -> block {
 
     let s = if cx.ccx.sess.opts.save_temps || cx.ccx.sess.opts.debuginfo {
diff --git a/src/rustc/middle/trans/type_use.rs b/src/rustc/middle/trans/type_use.rs
index 1ba04547604..8c5a0d23b42 100644
--- a/src/rustc/middle/trans/type_use.rs
+++ b/src/rustc/middle/trans/type_use.rs
@@ -56,7 +56,7 @@ fn type_uses_for(ccx: @crate_ctxt, fn_id: def_id, n_tps: uint)
     }
 
     if fn_id_loc.crate != local_crate {
-        let uses = vec::from_mut(cx.uses);
+        let uses = vec::from_mut(copy cx.uses);
         ccx.type_use_cache.insert(fn_id, uses);
         ret uses;
     }
@@ -95,7 +95,7 @@ fn type_uses_for(ccx: @crate_ctxt, fn_id: def_id, n_tps: uint)
       }
 
     }
-    let uses = vec::from_mut(cx.uses);
+    let uses = vec::from_mut(copy cx.uses);
     ccx.type_use_cache.insert(fn_id, uses);
     uses
 }