Convert to new closure syntax

This commit is contained in:
Brian Anderson 2012-06-30 16:19:07 -07:00
parent 13a8f54538
commit d1fc2b5995
394 changed files with 3253 additions and 3278 deletions

View file

@ -87,7 +87,7 @@ fn encode_inlined_item(ecx: @e::encode_ctxt,
ebml_w.writer.tell()];
let id_range = ast_util::compute_id_range_for_inlined_item(ii);
do ebml_w.wr_tag(c::tag_ast as uint) {||
do ebml_w.wr_tag(c::tag_ast as uint) || {
ast_util::serialize_id_range(ebml_w, id_range);
encode_ast(ebml_w, simplify_ast(ii));
encode_side_tables_for_ii(ecx, maps, ebml_w, ii);
@ -210,7 +210,7 @@ impl deserializer_helpers<D: deserializer> for D {
// but eventually we should add entries to the local codemap as required.
fn encode_ast(ebml_w: ebml::writer, item: ast::inlined_item) {
do ebml_w.wr_tag(c::tag_tree as uint) {||
do ebml_w.wr_tag(c::tag_tree as uint) || {
ast::serialize_inlined_item(ebml_w, item)
}
}
@ -227,7 +227,7 @@ fn encode_ast(ebml_w: ebml::writer, item: ast::inlined_item) {
// inlined items.
fn simplify_ast(ii: ast::inlined_item) -> ast::inlined_item {
fn drop_nested_items(blk: ast::blk_, fld: fold::ast_fold) -> ast::blk_ {
let stmts_sans_items = do vec::filter(blk.stmts) {|stmt|
let stmts_sans_items = do vec::filter(blk.stmts) |stmt| {
alt stmt.node {
ast::stmt_expr(_, _) | ast::stmt_semi(_, _) |
ast::stmt_decl(@{node: ast::decl_local(_), span: _}, _) { true }
@ -278,8 +278,8 @@ fn decode_ast(par_doc: ebml::doc) -> ast::inlined_item {
fn renumber_ast(xcx: extended_decode_ctxt, ii: ast::inlined_item)
-> ast::inlined_item {
let fld = fold::make_fold(@{
new_id: {|a|xcx.tr_id(a)},
new_span: {|a|xcx.tr_span(a)}
new_id: |a| xcx.tr_id(a),
new_span: |a| xcx.tr_span(a)
with *fold::default_ast_fold()
});
@ -425,7 +425,7 @@ fn encode_vtable_res(ecx: @e::encode_ctxt,
// ty::t doesn't work, and there is no way (atm) to have
// hand-written serialization routines combine with auto-generated
// ones. perhaps we should fix this.
do ebml_w.emit_from_vec(*dr) {|vtable_origin|
do ebml_w.emit_from_vec(*dr) |vtable_origin| {
encode_vtable_origin(ecx, ebml_w, vtable_origin)
}
}
@ -433,37 +433,37 @@ fn encode_vtable_res(ecx: @e::encode_ctxt,
fn encode_vtable_origin(ecx: @e::encode_ctxt,
ebml_w: ebml::writer,
vtable_origin: typeck::vtable_origin) {
do ebml_w.emit_enum("vtable_origin") {||
do ebml_w.emit_enum("vtable_origin") || {
alt vtable_origin {
typeck::vtable_static(def_id, tys, vtable_res) {
do ebml_w.emit_enum_variant("vtable_static", 0u, 3u) {||
do ebml_w.emit_enum_variant_arg(0u) {||
do ebml_w.emit_enum_variant("vtable_static", 0u, 3u) || {
do ebml_w.emit_enum_variant_arg(0u) || {
ebml_w.emit_def_id(def_id)
}
do ebml_w.emit_enum_variant_arg(1u) {||
do ebml_w.emit_enum_variant_arg(1u) || {
ebml_w.emit_tys(ecx, tys);
}
do ebml_w.emit_enum_variant_arg(2u) {||
do ebml_w.emit_enum_variant_arg(2u) || {
encode_vtable_res(ecx, ebml_w, vtable_res);
}
}
}
typeck::vtable_param(pn, bn) {
do ebml_w.emit_enum_variant("vtable_param", 1u, 2u) {||
do ebml_w.emit_enum_variant_arg(0u) {||
do ebml_w.emit_enum_variant("vtable_param", 1u, 2u) || {
do ebml_w.emit_enum_variant_arg(0u) || {
ebml_w.emit_uint(pn);
}
do ebml_w.emit_enum_variant_arg(1u) {||
do ebml_w.emit_enum_variant_arg(1u) || {
ebml_w.emit_uint(bn);
}
}
}
typeck::vtable_iface(def_id, tys) {
do ebml_w.emit_enum_variant("vtable_iface", 1u, 3u) {||
do ebml_w.emit_enum_variant_arg(0u) {||
do ebml_w.emit_enum_variant("vtable_iface", 1u, 3u) || {
do ebml_w.emit_enum_variant_arg(0u) || {
ebml_w.emit_def_id(def_id)
}
do ebml_w.emit_enum_variant_arg(1u) {||
do ebml_w.emit_enum_variant_arg(1u) || {
ebml_w.emit_tys(ecx, tys);
}
}
@ -475,43 +475,43 @@ fn encode_vtable_origin(ecx: @e::encode_ctxt,
impl helpers for ebml::ebml_deserializer {
fn read_vtable_res(xcx: extended_decode_ctxt) -> typeck::vtable_res {
@self.read_to_vec({|| self.read_vtable_origin(xcx) })
@self.read_to_vec(|| self.read_vtable_origin(xcx) )
}
fn read_vtable_origin(xcx: extended_decode_ctxt)
-> typeck::vtable_origin {
do self.read_enum("vtable_origin") {||
do self.read_enum_variant {|i|
do self.read_enum("vtable_origin") || {
do self.read_enum_variant |i| {
alt check i {
0u {
typeck::vtable_static(
do self.read_enum_variant_arg(0u) {||
do self.read_enum_variant_arg(0u) || {
self.read_def_id(xcx)
},
do self.read_enum_variant_arg(1u) {||
do self.read_enum_variant_arg(1u) || {
self.read_tys(xcx)
},
do self.read_enum_variant_arg(2u) {||
do self.read_enum_variant_arg(2u) || {
self.read_vtable_res(xcx)
}
)
}
1u {
typeck::vtable_param(
do self.read_enum_variant_arg(0u) {||
do self.read_enum_variant_arg(0u) || {
self.read_uint()
},
do self.read_enum_variant_arg(1u) {||
do self.read_enum_variant_arg(1u) || {
self.read_uint()
}
)
}
2u {
typeck::vtable_iface(
do self.read_enum_variant_arg(0u) {||
do self.read_enum_variant_arg(0u) || {
self.read_def_id(xcx)
},
do self.read_enum_variant_arg(1u) {||
do self.read_enum_variant_arg(1u) || {
self.read_tys(xcx)
}
)
@ -530,7 +530,7 @@ impl helpers for @e::encode_ctxt {
@{diag: self.tcx.sess.diagnostic(),
ds: e::def_to_str,
tcx: self.tcx,
reachable: {|a|encoder::reachable(self, a)},
reachable: |a| encoder::reachable(self, a),
abbrevs: tyencode::ac_use_abbrevs(self.type_abbrevs)}
}
}
@ -541,7 +541,7 @@ impl helpers for ebml::writer {
}
fn emit_tys(ecx: @e::encode_ctxt, tys: ~[ty::t]) {
do self.emit_from_vec(tys) {|ty|
do self.emit_from_vec(tys) |ty| {
e::write_type(ecx, self, ty)
}
}
@ -551,16 +551,16 @@ impl helpers for ebml::writer {
}
fn emit_tpbt(ecx: @e::encode_ctxt, tpbt: ty::ty_param_bounds_and_ty) {
do self.emit_rec {||
do self.emit_rec_field("bounds", 0u) {||
do self.emit_from_vec(*tpbt.bounds) {|bs|
do self.emit_rec || {
do self.emit_rec_field("bounds", 0u) || {
do self.emit_from_vec(*tpbt.bounds) |bs| {
self.emit_bounds(ecx, bs)
}
}
do self.emit_rec_field("rp", 1u) {||
do self.emit_rec_field("rp", 1u) || {
ast::serialize_region_param(self, tpbt.rp)
}
do self.emit_rec_field("ty", 2u) {||
do self.emit_rec_field("ty", 2u) || {
self.emit_ty(ecx, tpbt.ty);
}
}
@ -569,7 +569,7 @@ impl helpers for ebml::writer {
impl writer for ebml::writer {
fn tag(tag_id: c::astencode_tag, f: fn()) {
do self.wr_tag(tag_id as uint) {|| f() }
do self.wr_tag(tag_id as uint) || { f() }
}
fn id(id: ast::node_id) {
@ -581,7 +581,7 @@ fn encode_side_tables_for_ii(ecx: @e::encode_ctxt,
maps: maps,
ebml_w: ebml::writer,
ii: ast::inlined_item) {
do ebml_w.wr_tag(c::tag_table as uint) {||
do ebml_w.wr_tag(c::tag_table as uint) || {
ast_util::visit_ids_for_inlined_item(
ii,
fn@(id: ast::node_id, copy ebml_w) {
@ -601,37 +601,37 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
#debug["Encoding side tables for id %d", id];
do option::iter(tcx.def_map.find(id)) {|def|
do ebml_w.tag(c::tag_table_def) {||
do option::iter(tcx.def_map.find(id)) |def| {
do ebml_w.tag(c::tag_table_def) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.tag(c::tag_table_val) || {
ast::serialize_def(ebml_w, def)
}
}
}
do option::iter((*tcx.node_types).find(id as uint)) {|ty|
do ebml_w.tag(c::tag_table_node_type) {||
do option::iter((*tcx.node_types).find(id as uint)) |ty| {
do ebml_w.tag(c::tag_table_node_type) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.tag(c::tag_table_val) || {
e::write_type(ecx, ebml_w, ty)
}
}
}
do option::iter(tcx.node_type_substs.find(id)) {|tys|
do ebml_w.tag(c::tag_table_node_type_subst) {||
do option::iter(tcx.node_type_substs.find(id)) |tys| {
do ebml_w.tag(c::tag_table_node_type_subst) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.tag(c::tag_table_val) || {
ebml_w.emit_tys(ecx, tys)
}
}
}
do option::iter(tcx.freevars.find(id)) {|fv|
do ebml_w.tag(c::tag_table_freevars) {||
do option::iter(tcx.freevars.find(id)) |fv| {
do ebml_w.tag(c::tag_table_freevars) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.emit_from_vec(*fv) {|fv_entry|
do ebml_w.tag(c::tag_table_val) || {
do ebml_w.emit_from_vec(*fv) |fv_entry| {
encode_freevar_entry(ebml_w, *fv_entry)
}
}
@ -639,19 +639,19 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
}
let lid = {crate: ast::local_crate, node: id};
do option::iter(tcx.tcache.find(lid)) {|tpbt|
do ebml_w.tag(c::tag_table_tcache) {||
do option::iter(tcx.tcache.find(lid)) |tpbt| {
do ebml_w.tag(c::tag_table_tcache) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.tag(c::tag_table_val) || {
ebml_w.emit_tpbt(ecx, tpbt);
}
}
}
do option::iter(tcx.ty_param_bounds.find(id)) {|pbs|
do ebml_w.tag(c::tag_table_param_bounds) {||
do option::iter(tcx.ty_param_bounds.find(id)) |pbs| {
do ebml_w.tag(c::tag_table_param_bounds) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.tag(c::tag_table_val) || {
ebml_w.emit_bounds(ecx, pbs)
}
}
@ -671,17 +671,17 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
// }
//}
do option::iter(maps.mutbl_map.find(id)) {|_m|
do ebml_w.tag(c::tag_table_mutbl) {||
do option::iter(maps.mutbl_map.find(id)) |_m| {
do ebml_w.tag(c::tag_table_mutbl) || {
ebml_w.id(id);
}
}
do option::iter(maps.last_use_map.find(id)) {|m|
do ebml_w.tag(c::tag_table_last_use) {||
do option::iter(maps.last_use_map.find(id)) |m| {
do ebml_w.tag(c::tag_table_last_use) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.emit_from_vec((*m).get()) {|id|
do ebml_w.tag(c::tag_table_val) || {
do ebml_w.emit_from_vec((*m).get()) |id| {
ebml_w.emit_int(id);
}
}
@ -691,28 +691,28 @@ fn encode_side_tables_for_id(ecx: @e::encode_ctxt,
// impl_map is not used except when emitting metadata,
// don't need to keep it.
do option::iter(maps.method_map.find(id)) {|mme|
do ebml_w.tag(c::tag_table_method_map) {||
do option::iter(maps.method_map.find(id)) |mme| {
do ebml_w.tag(c::tag_table_method_map) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.tag(c::tag_table_val) || {
serialize_method_map_entry(ebml_w, mme)
}
}
}
do option::iter(maps.vtable_map.find(id)) {|dr|
do ebml_w.tag(c::tag_table_vtable_map) {||
do option::iter(maps.vtable_map.find(id)) |dr| {
do ebml_w.tag(c::tag_table_vtable_map) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.tag(c::tag_table_val) || {
encode_vtable_res(ecx, ebml_w, dr);
}
}
}
do option::iter(tcx.borrowings.find(id)) {|borrow|
do ebml_w.tag(c::tag_table_borrowings) {||
do option::iter(tcx.borrowings.find(id)) |borrow| {
do ebml_w.tag(c::tag_table_borrowings) || {
ebml_w.id(id);
do ebml_w.tag(c::tag_table_val) {||
do ebml_w.tag(c::tag_table_val) || {
ty::serialize_borrow(ebml_w, borrow)
}
}
@ -738,30 +738,30 @@ impl decoder for ebml::ebml_deserializer {
tydecode::parse_ty_data(
self.parent.data, xcx.dcx.cdata.cnum, self.pos, xcx.dcx.tcx,
{|a|xcx.tr_def_id(a)})
|a| xcx.tr_def_id(a) )
}
fn read_tys(xcx: extended_decode_ctxt) -> ~[ty::t] {
self.read_to_vec({|| self.read_ty(xcx) })
self.read_to_vec(|| self.read_ty(xcx) )
}
fn read_bounds(xcx: extended_decode_ctxt) -> @~[ty::param_bound] {
tydecode::parse_bounds_data(
self.parent.data, self.pos, xcx.dcx.cdata.cnum, xcx.dcx.tcx,
{|a|xcx.tr_def_id(a)})
|a| xcx.tr_def_id(a) )
}
fn read_ty_param_bounds_and_ty(xcx: extended_decode_ctxt)
-> ty::ty_param_bounds_and_ty {
do self.read_rec {||
do self.read_rec || {
{
bounds: self.read_rec_field("bounds", 0u, {||
@self.read_to_vec({|| self.read_bounds(xcx) })
bounds: self.read_rec_field("bounds", 0u, || {
@self.read_to_vec(|| self.read_bounds(xcx) )
}),
rp: self.read_rec_field("rp", 1u, {||
rp: self.read_rec_field("rp", 1u, || {
ast::deserialize_region_param(self)
}),
ty: self.read_rec_field("ty", 2u, {||
ty: self.read_rec_field("ty", 2u, || {
self.read_ty(xcx)
})
}
@ -773,7 +773,7 @@ fn decode_side_tables(xcx: extended_decode_ctxt,
ast_doc: ebml::doc) {
let dcx = xcx.dcx;
let tbl_doc = ast_doc[c::tag_table];
do ebml::docs(tbl_doc) {|tag, entry_doc|
do ebml::docs(tbl_doc) |tag, entry_doc| {
let id0 = entry_doc[c::tag_table_id].as_int();
let id = xcx.tr_id(id0);
@ -796,7 +796,7 @@ fn decode_side_tables(xcx: extended_decode_ctxt,
let tys = val_dsr.read_tys(xcx);
dcx.tcx.node_type_substs.insert(id, tys);
} else if tag == (c::tag_table_freevars as uint) {
let fv_info = @val_dsr.read_to_vec({||
let fv_info = @val_dsr.read_to_vec(|| {
@val_dsr.read_freevar_entry(xcx)
});
dcx.tcx.freevars.insert(id, fv_info);
@ -808,7 +808,7 @@ fn decode_side_tables(xcx: extended_decode_ctxt,
let bounds = val_dsr.read_bounds(xcx);
dcx.tcx.ty_param_bounds.insert(id, bounds);
} else if tag == (c::tag_table_last_use as uint) {
let ids = val_dsr.read_to_vec({||
let ids = val_dsr.read_to_vec(|| {
xcx.tr_id(val_dsr.read_int())
});
let dvec = @dvec::from_vec(vec::to_mut(ids));
@ -838,7 +838,7 @@ fn decode_side_tables(xcx: extended_decode_ctxt,
#[cfg(test)]
fn encode_item_ast(ebml_w: ebml::writer, item: @ast::item) {
do ebml_w.wr_tag(c::tag_tree as uint) {||
do ebml_w.wr_tag(c::tag_tree as uint) || {
ast::serialize_item(ebml_w, *item);
}
}
@ -881,9 +881,9 @@ fn roundtrip(in_item: @ast::item) {
#debug["out_item = %s", pprust::item_to_str(out_item)];
let exp_str =
io::with_str_writer({|w| ast::serialize_item(w, *in_item) });
io::with_str_writer(|w| ast::serialize_item(w, *in_item) );
let out_str =
io::with_str_writer({|w| ast::serialize_item(w, *out_item) });
io::with_str_writer(|w| ast::serialize_item(w, *out_item) );
#debug["expected string: %s", exp_str];
#debug["actual string : %s", out_str];