From 8668d06400710f9d99d1b39da847031dc3d78394 Mon Sep 17 00:00:00 2001 From: Michael Sullivan Date: Thu, 24 May 2012 14:49:39 -0700 Subject: Get rid of many implicit copies as a preliminary to Issue #2448. --- src/rustc/driver/rustc.rs | 2 +- src/rustc/metadata/encoder.rs | 6 +++--- src/rustc/middle/astencode.rs | 2 +- src/rustc/middle/resolve.rs | 4 ++-- src/rustc/middle/trans/base.rs | 2 +- src/rustc/middle/trans/type_use.rs | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) (limited to 'src/rustc') 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]) { *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) -> 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 } -- cgit 1.4.1-3-g733a5