about summary refs log tree commit diff
path: root/src/rustc
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-09-04 13:29:32 -0700
committerBrian Anderson <banderson@mozilla.com>2012-09-04 15:47:04 -0700
commit200959d7cef647b34e1d7cf7f4ed2c28b65fc7dc (patch)
treed2a2e790b95f73e30320d1e49b0566423ecb17a1 /src/rustc
parentef880f22450c4f7e455f431ff4603f90d443b545 (diff)
downloadrust-200959d7cef647b34e1d7cf7f4ed2c28b65fc7dc.tar.gz
rust-200959d7cef647b34e1d7cf7f4ed2c28b65fc7dc.zip
Remove 'with'
Diffstat (limited to 'src/rustc')
-rw-r--r--src/rustc/front/config.rs4
-rw-r--r--src/rustc/front/core_inject.rs4
-rw-r--r--src/rustc/front/intrinsic_inject.rs4
-rw-r--r--src/rustc/front/test.rs6
-rw-r--r--src/rustc/metadata/creader.rs2
-rw-r--r--src/rustc/metadata/encoder.rs2
-rw-r--r--src/rustc/metadata/tydecode.rs2
-rw-r--r--src/rustc/middle/astencode.rs34
-rw-r--r--src/rustc/middle/borrowck.rs2
-rw-r--r--src/rustc/middle/borrowck/check_loans.rs4
-rw-r--r--src/rustc/middle/borrowck/gather_loans.rs2
-rw-r--r--src/rustc/middle/borrowck/preserve.rs6
-rw-r--r--src/rustc/middle/check_alt.rs4
-rw-r--r--src/rustc/middle/check_const.rs8
-rw-r--r--src/rustc/middle/check_loop.rs8
-rw-r--r--src/rustc/middle/const_eval.rs4
-rw-r--r--src/rustc/middle/freevars.rs8
-rw-r--r--src/rustc/middle/kind.rs6
-rw-r--r--src/rustc/middle/lang_items.rs4
-rw-r--r--src/rustc/middle/lint.rs24
-rw-r--r--src/rustc/middle/liveness.rs4
-rw-r--r--src/rustc/middle/privacy.rs4
-rw-r--r--src/rustc/middle/region.rs12
-rw-r--r--src/rustc/middle/resolve.rs8
-rw-r--r--src/rustc/middle/trans/alt.rs6
-rw-r--r--src/rustc/middle/trans/base.rs14
-rw-r--r--src/rustc/middle/trans/impl.rs12
-rw-r--r--src/rustc/middle/trans/reachable.rs10
-rw-r--r--src/rustc/middle/trans/type_use.rs4
-rw-r--r--src/rustc/middle/ty.rs6
-rw-r--r--src/rustc/middle/typeck/check.rs20
-rw-r--r--src/rustc/middle/typeck/check/method.rs20
-rw-r--r--src/rustc/middle/typeck/check/regionck.rs4
-rw-r--r--src/rustc/middle/typeck/check/regionmanip.rs2
-rw-r--r--src/rustc/middle/typeck/check/vtable.rs4
-rw-r--r--src/rustc/middle/typeck/check/writeback.rs4
-rw-r--r--src/rustc/middle/typeck/coherence.rs12
-rw-r--r--src/rustc/middle/typeck/collect.rs4
-rw-r--r--src/rustc/middle/typeck/infer/lattice.rs4
-rw-r--r--src/rustc/middle/typeck/infer/sub.rs4
-rw-r--r--src/rustc/util/common.rs2
41 files changed, 149 insertions, 149 deletions
diff --git a/src/rustc/front/config.rs b/src/rustc/front/config.rs
index 79b9baa77dd..ac970faf954 100644
--- a/src/rustc/front/config.rs
+++ b/src/rustc/front/config.rs
@@ -26,8 +26,8 @@ fn strip_items(crate: @ast::crate, in_cfg: in_cfg_pred)
     let precursor =
         @{fold_mod: |a,b| fold_mod(ctxt, a, b),
           fold_block: fold::wrap(|a,b| fold_block(ctxt, a, b) ),
-          fold_foreign_mod: |a,b| fold_foreign_mod(ctxt, a, b)
-          with *fold::default_ast_fold()};
+          fold_foreign_mod: |a,b| fold_foreign_mod(ctxt, a, b),
+          .. *fold::default_ast_fold()};
 
     let fold = fold::make_fold(precursor);
     let res = @fold.fold_crate(*crate);
diff --git a/src/rustc/front/core_inject.rs b/src/rustc/front/core_inject.rs
index e68a98f4ff5..7bdd2f06485 100644
--- a/src/rustc/front/core_inject.rs
+++ b/src/rustc/front/core_inject.rs
@@ -44,6 +44,6 @@ fn inject_libcore_ref(sess: session,
 
     let vis = vec::append(~[vi1, vi2], crate.node.module.view_items);
 
-    return @{node: {module: { view_items: vis with crate.node.module }
-                 with crate.node} with *crate }
+    return @{node: {module: { view_items: vis,.. crate.node.module },
+                 .. crate.node},.. *crate }
 }
diff --git a/src/rustc/front/intrinsic_inject.rs b/src/rustc/front/intrinsic_inject.rs
index cc184543b00..8fd885e8f8b 100644
--- a/src/rustc/front/intrinsic_inject.rs
+++ b/src/rustc/front/intrinsic_inject.rs
@@ -24,6 +24,6 @@ fn inject_intrinsic(sess: session,
 
     let items = vec::append(~[item], crate.node.module.items);
 
-    return @{node: {module: { items: items with crate.node.module }
-                 with crate.node} with *crate }
+    return @{node: {module: { items: items ,.. crate.node.module }
+                 ,.. crate.node} ,.. *crate }
 }
diff --git a/src/rustc/front/test.rs b/src/rustc/front/test.rs
index 62fed099e40..604a95a59b0 100644
--- a/src/rustc/front/test.rs
+++ b/src/rustc/front/test.rs
@@ -47,7 +47,7 @@ fn generate_test_harness(sess: session::session,
     let precursor =
         @{fold_crate: fold::wrap(|a,b| fold_crate(cx, a, b) ),
           fold_item: |a,b| fold_item(cx, a, b),
-          fold_mod: |a,b| fold_mod(cx, a, b) with *fold::default_ast_fold()};
+          fold_mod: |a,b| fold_mod(cx, a, b),.. *fold::default_ast_fold()};
 
     let fold = fold::make_fold(precursor);
     let res = @fold.fold_crate(*crate);
@@ -92,7 +92,7 @@ fn fold_crate(cx: test_ctxt, c: ast::crate_, fld: fold::ast_fold) ->
 
     // Add a special __test module to the crate that will contain code
     // generated for the test harness
-    return {module: add_test_module(cx, folded.module) with folded};
+    return {module: add_test_module(cx, folded.module),.. folded};
 }
 
 
@@ -166,7 +166,7 @@ fn should_fail(i: @ast::item) -> bool {
 
 fn add_test_module(cx: test_ctxt, m: ast::_mod) -> ast::_mod {
     let testmod = mk_test_module(cx);
-    return {items: vec::append_one(m.items, testmod) with m};
+    return {items: vec::append_one(m.items, testmod),.. m};
 }
 
 /*
diff --git a/src/rustc/metadata/creader.rs b/src/rustc/metadata/creader.rs
index df02a8640dc..362220d06e8 100644
--- a/src/rustc/metadata/creader.rs
+++ b/src/rustc/metadata/creader.rs
@@ -31,7 +31,7 @@ fn read_crates(diag: span_handler, crate: ast::crate,
         visit::mk_simple_visitor(@{visit_view_item:
                                        |a| visit_view_item(e, a),
                                    visit_item: |a| visit_item(e, a)
-                                   with *visit::default_simple_visitor()});
+                                   ,.. *visit::default_simple_visitor()});
     visit::visit_crate(crate, (), v);
     dump_crates(e.crate_cache);
     warn_if_multiple_versions(e, diag, e.crate_cache.get());
diff --git a/src/rustc/metadata/encoder.rs b/src/rustc/metadata/encoder.rs
index 3d114ce4c6b..090fa67b79a 100644
--- a/src/rustc/metadata/encoder.rs
+++ b/src/rustc/metadata/encoder.rs
@@ -858,7 +858,7 @@ fn encode_info_for_items(ecx: @encode_ctxt, ebml_w: ebml::Writer,
               _ => fail ~"bad foreign item"
             }
         }
-        with *visit::default_visitor()
+        ,.. *visit::default_visitor()
     }));
     ebml_w.end_tag();
     return *index;
diff --git a/src/rustc/metadata/tydecode.rs b/src/rustc/metadata/tydecode.rs
index 163bb5db81b..3bd4cdd47db 100644
--- a/src/rustc/metadata/tydecode.rs
+++ b/src/rustc/metadata/tydecode.rs
@@ -294,7 +294,7 @@ fn parse_ty(st: @pstate, conv: conv_did) -> ty::t {
         match st.tcx.rcache.find({cnum: st.crate, pos: pos, len: len}) {
           Some(tt) => return tt,
           None => {
-            let ps = @{pos: pos with *st};
+            let ps = @{pos: pos ,.. *st};
             let tt = parse_ty(ps, conv);
             st.tcx.rcache.insert({cnum: st.crate, pos: pos, len: len}, tt);
             return tt;
diff --git a/src/rustc/middle/astencode.rs b/src/rustc/middle/astencode.rs
index 08dd70f757b..8cfcaddaa7b 100644
--- a/src/rustc/middle/astencode.rs
+++ b/src/rustc/middle/astencode.rs
@@ -247,13 +247,13 @@ fn simplify_ast(ii: ast::inlined_item) -> ast::inlined_item {
               ast::stmt_decl(@{node: ast::decl_item(_), span: _}, _) => false
             }
         };
-        let blk_sans_items = { stmts: stmts_sans_items with blk };
+        let blk_sans_items = { stmts: stmts_sans_items,.. blk };
         fold::noop_fold_block(blk_sans_items, fld)
     }
 
     let fld = fold::make_fold(@{
-        fold_block: fold::wrap(drop_nested_items)
-        with *fold::default_ast_fold()
+        fold_block: fold::wrap(drop_nested_items),
+        .. *fold::default_ast_fold()
     });
 
     match ii {
@@ -269,15 +269,15 @@ fn simplify_ast(ii: ast::inlined_item) -> ast::inlined_item {
       ast::ii_ctor(ctor, nm, tps, parent_id) => {
         let ctor_body = fld.fold_block(ctor.node.body);
         let ctor_decl = fold::fold_fn_decl(ctor.node.dec, fld);
-        ast::ii_ctor({node: {body: ctor_body, dec: ctor_decl
-                              with ctor.node}
-            with ctor}, nm, tps, parent_id)
+        ast::ii_ctor({node: {body: ctor_body, dec: ctor_decl,
+                              .. ctor.node},
+            .. ctor}, nm, tps, parent_id)
       }
       ast::ii_dtor(dtor, nm, tps, parent_id) => {
         let dtor_body = fld.fold_block(dtor.node.body);
-        ast::ii_dtor({node: {body: dtor_body
-                              with dtor.node}
-            with dtor}, nm, tps, parent_id)
+        ast::ii_dtor({node: {body: dtor_body,
+                              .. dtor.node},
+            .. dtor}, nm, tps, parent_id)
       }
     }
 }
@@ -292,8 +292,8 @@ 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)
-        with *fold::default_ast_fold()
+        new_span: |a| xcx.tr_span(a),
+        .. *fold::default_ast_fold()
     });
 
     match ii {
@@ -314,9 +314,9 @@ fn renumber_ast(xcx: extended_decode_ctxt, ii: ast::inlined_item)
         let ctor_id = fld.new_id(ctor.node.id);
         let new_parent = xcx.tr_def_id(parent_id);
         ast::ii_ctor({node: {body: ctor_body, attrs: ctor_attrs,
-                dec: ctor_decl, id: ctor_id
-                              with ctor.node}
-            with ctor}, nm, new_params, new_parent)
+                dec: ctor_decl, id: ctor_id,
+                              .. ctor.node},
+            .. ctor}, nm, new_params, new_parent)
       }
       ast::ii_dtor(dtor, nm, tps, parent_id) => {
         let dtor_body = fld.fold_block(dtor.node.body);
@@ -326,8 +326,8 @@ fn renumber_ast(xcx: extended_decode_ctxt, ii: ast::inlined_item)
         let new_parent = xcx.tr_def_id(parent_id);
         let new_self = fld.new_id(dtor.node.self_id);
         ast::ii_dtor({node: {id: dtor_id, attrs: dtor_attrs,
-                self_id: new_self, body: dtor_body}
-                        with dtor},
+                self_id: new_self, body: dtor_body},
+                        .. dtor},
           nm, new_params, new_parent)
       }
      }
@@ -432,7 +432,7 @@ impl method_origin: tr {
             typeck::method_static(did.tr(xcx))
           }
           typeck::method_param(mp) => {
-            typeck::method_param({trait_id:mp.trait_id.tr(xcx) with mp})
+            typeck::method_param({trait_id:mp.trait_id.tr(xcx),.. mp})
           }
           typeck::method_trait(did, m) => {
             typeck::method_trait(did.tr(xcx), m)
diff --git a/src/rustc/middle/borrowck.rs b/src/rustc/middle/borrowck.rs
index 18df37373b1..55067d82a77 100644
--- a/src/rustc/middle/borrowck.rs
+++ b/src/rustc/middle/borrowck.rs
@@ -443,7 +443,7 @@ impl borrowck_ctxt {
     }
 
     fn cat_discr(cmt: cmt, alt_id: ast::node_id) -> cmt {
-        return @{cat:cat_discr(cmt, alt_id) with *cmt};
+        return @{cat:cat_discr(cmt, alt_id),.. *cmt};
     }
 
     fn cat_pattern(cmt: cmt, pat: @ast::pat, op: fn(cmt, @ast::pat)) {
diff --git a/src/rustc/middle/borrowck/check_loans.rs b/src/rustc/middle/borrowck/check_loans.rs
index 906efa43a4a..a2e2049dcf7 100644
--- a/src/rustc/middle/borrowck/check_loans.rs
+++ b/src/rustc/middle/borrowck/check_loans.rs
@@ -67,8 +67,8 @@ fn check_loans(bccx: borrowck_ctxt,
     let vt = visit::mk_vt(@{visit_expr: check_loans_in_expr,
                             visit_local: check_loans_in_local,
                             visit_block: check_loans_in_block,
-                            visit_fn: check_loans_in_fn
-                            with *visit::default_visitor()});
+                            visit_fn: check_loans_in_fn,
+                            .. *visit::default_visitor()});
     visit::visit_crate(*crate, clcx, vt);
 }
 
diff --git a/src/rustc/middle/borrowck/gather_loans.rs b/src/rustc/middle/borrowck/gather_loans.rs
index ef01e254c86..3f31e011b05 100644
--- a/src/rustc/middle/borrowck/gather_loans.rs
+++ b/src/rustc/middle/borrowck/gather_loans.rs
@@ -53,7 +53,7 @@ fn gather_loans(bccx: borrowck_ctxt, crate: @ast::crate) -> req_maps {
                                   mut root_ub: 0});
     let v = visit::mk_vt(@{visit_expr: req_loans_in_expr,
                            visit_fn: req_loans_in_fn,
-                           with *visit::default_visitor()});
+                           .. *visit::default_visitor()});
     visit::visit_crate(*crate, glcx, v);
     return glcx.req_maps;
 }
diff --git a/src/rustc/middle/borrowck/preserve.rs b/src/rustc/middle/borrowck/preserve.rs
index 8e28a26f8d5..d1c7e36a27a 100644
--- a/src/rustc/middle/borrowck/preserve.rs
+++ b/src/rustc/middle/borrowck/preserve.rs
@@ -158,7 +158,7 @@ priv impl &preserve_ctxt {
             debug!("base.mutbl = %?", self.bccx.mut_to_str(base.mutbl));
             if base.mutbl == m_imm {
                 let non_rooting_ctxt =
-                    preserve_ctxt({root_managed_data: false with **self});
+                    preserve_ctxt({root_managed_data: false,.. **self});
                 match (&non_rooting_ctxt).preserve(base) {
                   Ok(pc_ok) => {
                     Ok(pc_ok)
@@ -232,8 +232,8 @@ priv impl &preserve_ctxt {
             // in the *arm* vs the *alt*.
 
             let alt_rooting_ctxt =
-                preserve_ctxt({scope_region: ty::re_scope(alt_id)
-                               with **self});
+                preserve_ctxt({scope_region: ty::re_scope(alt_id),
+                               .. **self});
             (&alt_rooting_ctxt).preserve(base)
           }
         }
diff --git a/src/rustc/middle/check_alt.rs b/src/rustc/middle/check_alt.rs
index 660a502df26..f56833c1dbc 100644
--- a/src/rustc/middle/check_alt.rs
+++ b/src/rustc/middle/check_alt.rs
@@ -15,8 +15,8 @@ use std::map::hashmap;
 fn check_crate(tcx: ty::ctxt, crate: @crate) {
     visit::visit_crate(*crate, (), visit::mk_vt(@{
         visit_expr: |a,b,c| check_expr(tcx, a, b, c),
-        visit_local: |a,b,c| check_local(tcx, a, b, c)
-        with *visit::default_visitor::<()>()
+        visit_local: |a,b,c| check_local(tcx, a, b, c),
+        .. *visit::default_visitor::<()>()
     }));
     tcx.sess.abort_if_errors();
 }
diff --git a/src/rustc/middle/check_const.rs b/src/rustc/middle/check_const.rs
index b0c410211c1..c01eab9574b 100644
--- a/src/rustc/middle/check_const.rs
+++ b/src/rustc/middle/check_const.rs
@@ -11,8 +11,8 @@ fn check_crate(sess: session, crate: @crate, ast_map: ast_map::map,
         visit_item: |a,b,c| check_item(sess, ast_map, def_map, a, b, c),
         visit_pat: check_pat,
         visit_expr: |a,b,c|
-            check_expr(sess, def_map, method_map, tcx, a, b, c)
-        with *visit::default_visitor()
+            check_expr(sess, def_map, method_map, tcx, a, b, c),
+        .. *visit::default_visitor()
     }));
     sess.abort_if_errors();
 }
@@ -163,8 +163,8 @@ fn check_item_recursion(sess: session, ast_map: ast_map::map,
 
     let visitor = visit::mk_vt(@{
         visit_item: visit_item,
-        visit_expr: visit_expr
-        with *visit::default_visitor()
+        visit_expr: visit_expr,
+        .. *visit::default_visitor()
     });
     visitor.visit_item(it, env, visitor);
 
diff --git a/src/rustc/middle/check_loop.rs b/src/rustc/middle/check_loop.rs
index 79f8cf24da0..3cd26f3039b 100644
--- a/src/rustc/middle/check_loop.rs
+++ b/src/rustc/middle/check_loop.rs
@@ -13,10 +13,10 @@ fn check_crate(tcx: ty::ctxt, crate: @crate) {
             match e.node {
               expr_while(e, b) => {
                 v.visit_expr(e, cx, v);
-                v.visit_block(b, {in_loop: true with cx}, v);
+                v.visit_block(b, {in_loop: true,.. cx}, v);
               }
               expr_loop(b, _) => {
-                v.visit_block(b, {in_loop: true with cx}, v);
+                v.visit_block(b, {in_loop: true,.. cx}, v);
               }
               expr_fn(_, _, _, _) => {
                 visit::visit_expr(e, {in_loop: false, can_ret: true}, v);
@@ -47,7 +47,7 @@ fn check_crate(tcx: ty::ctxt, crate: @crate) {
               }
               _ => visit::visit_expr(e, cx, v)
             }
-        }
-        with *visit::default_visitor()
+        },
+        .. *visit::default_visitor()
     }));
 }
diff --git a/src/rustc/middle/const_eval.rs b/src/rustc/middle/const_eval.rs
index 90bfbc4117b..a06403af2e0 100644
--- a/src/rustc/middle/const_eval.rs
+++ b/src/rustc/middle/const_eval.rs
@@ -171,8 +171,8 @@ fn process_crate(crate: @ast::crate,
                  def_map: resolve::DefMap,
                  tcx: ty::ctxt) {
     let v = visit::mk_simple_visitor(@{
-        visit_expr_post: |e| { classify(e, def_map, tcx); }
-        with *visit::default_simple_visitor()
+        visit_expr_post: |e| { classify(e, def_map, tcx); },
+        .. *visit::default_simple_visitor()
     });
     visit::visit_crate(*crate, (), v);
     tcx.sess.abort_if_errors();
diff --git a/src/rustc/middle/freevars.rs b/src/rustc/middle/freevars.rs
index 59d97e0351a..549a1124264 100644
--- a/src/rustc/middle/freevars.rs
+++ b/src/rustc/middle/freevars.rs
@@ -74,8 +74,8 @@ fn collect_freevars(def_map: resolve::DefMap, blk: ast::blk)
             }
         };
 
-    let v = visit::mk_vt(@{visit_item: ignore_item, visit_expr: walk_expr
-                           with *visit::default_visitor()});
+    let v = visit::mk_vt(@{visit_item: ignore_item, visit_expr: walk_expr,
+                           .. *visit::default_visitor()});
     v.visit_block(blk, 1, v);
     return @*refs;
 }
@@ -96,8 +96,8 @@ fn annotate_freevars(def_map: resolve::DefMap, crate: @ast::crate) ->
     };
 
     let visitor =
-        visit::mk_simple_visitor(@{visit_fn: walk_fn
-                                   with *visit::default_simple_visitor()});
+        visit::mk_simple_visitor(@{visit_fn: walk_fn,
+                                   .. *visit::default_simple_visitor()});
     visit::visit_crate(*crate, (), visitor);
 
     return freevars;
diff --git a/src/rustc/middle/kind.rs b/src/rustc/middle/kind.rs
index 3fc02702ab4..259b0a111f8 100644
--- a/src/rustc/middle/kind.rs
+++ b/src/rustc/middle/kind.rs
@@ -81,9 +81,9 @@ fn check_crate(tcx: ty::ctxt,
         visit_fn: check_fn,
         visit_ty: check_ty,
         visit_item: fn@(i: @item, cx: ctx, v: visit::vt<ctx>) {
-            visit::visit_item(i, {current_item: i.id with cx}, v);
-        }
-        with *visit::default_visitor()
+            visit::visit_item(i, {current_item: i.id,.. cx}, v);
+        },
+        .. *visit::default_visitor()
     });
     visit::visit_crate(*crate, ctx, visit);
     tcx.sess.abort_if_errors();
diff --git a/src/rustc/middle/lang_items.rs b/src/rustc/middle/lang_items.rs
index 55f7113de08..b57f1eac19b 100644
--- a/src/rustc/middle/lang_items.rs
+++ b/src/rustc/middle/lang_items.rs
@@ -165,8 +165,8 @@ struct LanguageItemCollector {
                                                                      .value);
                     }
                 }
-            }
-            with *default_simple_visitor()
+            },
+            .. *default_simple_visitor()
         }));
     }
 
diff --git a/src/rustc/middle/lint.rs b/src/rustc/middle/lint.rs
index 5acf2155477..349e308255a 100644
--- a/src/rustc/middle/lint.rs
+++ b/src/rustc/middle/lint.rs
@@ -321,7 +321,7 @@ impl ctxt {
                 new_ctxt =
                     ctxt_({is_default: false,
                            curr: c,
-                           with *new_ctxt});
+                           .. *new_ctxt});
                 new_ctxt.set_level(lint.lint, level);
               }
             }
@@ -362,11 +362,11 @@ fn build_settings_crate(sess: session::session, crate: @ast::crate) {
             sess.lint_settings.default_settings.insert(k, v);
         }
 
-        let cx = ctxt_({is_default: true with *cx});
+        let cx = ctxt_({is_default: true,.. *cx});
 
         let visit = visit::mk_vt(@{
-            visit_item: build_settings_item
-            with *visit::default_visitor()
+            visit_item: build_settings_item,
+            .. *visit::default_visitor()
         });
         visit::visit_crate(*crate, cx, visit);
     }
@@ -387,7 +387,7 @@ fn check_item(i: @ast::item, cx: ty::ctxt) {
 // not traverse into subitems, since that is handled by the outer
 // lint visitor.
 fn item_stopping_visitor<E>(v: visit::vt<E>) -> visit::vt<E> {
-    visit::mk_vt(@{visit_item: |_i, _e, _v| { } with **v})
+    visit::mk_vt(@{visit_item: |_i, _e, _v| { },.. **v})
 }
 
 fn check_item_while_true(cx: ty::ctxt, it: @ast::item) {
@@ -407,8 +407,8 @@ fn check_item_while_true(cx: ty::ctxt, it: @ast::item) {
              }
              _ => ()
           }
-        }
-        with *visit::default_simple_visitor()
+        },
+        .. *visit::default_simple_visitor()
     }));
     visit::visit_item(it, (), visit);
 }
@@ -519,8 +519,8 @@ fn check_item_heap(cx: ty::ctxt, it: @ast::item) {
         visit_expr: fn@(e: @ast::expr) {
             let ty = ty::expr_ty(cx, e);
             check_type(cx, e.id, it.id, e.span, ty);
-        }
-        with *visit::default_simple_visitor()
+        },
+        .. *visit::default_simple_visitor()
     }));
     visit::visit_item(it, (), visit);
 }
@@ -540,8 +540,8 @@ fn check_item_path_statement(cx: ty::ctxt, it: @ast::item) {
               }
               _ => ()
             }
-        }
-        with *visit::default_simple_visitor()
+        },
+        .. *visit::default_simple_visitor()
     }));
     visit::visit_item(it, (), visit);
 }
@@ -681,7 +681,7 @@ fn check_crate(tcx: ty::ctxt, crate: @ast::crate) {
             check_fn(tcx, fk, decl, body, span, id),
         visit_pat: |pat|
             check_pat(tcx, pat),
-        with *visit::default_simple_visitor()
+        .. *visit::default_simple_visitor()
     });
     visit::visit_crate(*crate, (), v);
 
diff --git a/src/rustc/middle/liveness.rs b/src/rustc/middle/liveness.rs
index e90e4335247..1dbbec91402 100644
--- a/src/rustc/middle/liveness.rs
+++ b/src/rustc/middle/liveness.rs
@@ -185,7 +185,7 @@ fn check_crate(tcx: ty::ctxt,
         visit_local: visit_local,
         visit_expr: visit_expr,
         visit_arm: visit_arm,
-        with *visit::default_visitor()
+        .. *visit::default_visitor()
     });
 
     let last_use_map = int_hash();
@@ -457,7 +457,7 @@ fn visit_fn(fk: visit::fn_kind, decl: fn_decl, body: blk,
         visit_local: check_local,
         visit_expr: check_expr,
         visit_arm: check_arm,
-        with *visit::default_visitor()
+        .. *visit::default_visitor()
     });
     check_vt.visit_block(body, lsets, check_vt);
     lsets.check_ret(id, sp, fk, entry_ln);
diff --git a/src/rustc/middle/privacy.rs b/src/rustc/middle/privacy.rs
index 83c341c609a..5c7ca0092c7 100644
--- a/src/rustc/middle/privacy.rs
+++ b/src/rustc/middle/privacy.rs
@@ -67,8 +67,8 @@ fn check_crate(tcx: ty::ctxt, crate: @ast::crate) {
             }
 
             visit::visit_expr(expr, env, visitor);
-        }
-        with *visit::default_visitor()
+        },
+        .. *visit::default_visitor()
     });
     visit::visit_crate(*crate, (), visitor);
 }
diff --git a/src/rustc/middle/region.rs b/src/rustc/middle/region.rs
index e5f6a136935..5b9a2e70106 100644
--- a/src/rustc/middle/region.rs
+++ b/src/rustc/middle/region.rs
@@ -206,7 +206,7 @@ fn resolve_block(blk: ast::blk, cx: ctxt, visitor: visit::vt<ctxt>) {
     record_parent(cx, blk.node.id);
 
     // Descend.
-    let new_cx: ctxt = ctxt {parent: Some(blk.node.id) with cx};
+    let new_cx: ctxt = ctxt {parent: Some(blk.node.id),.. cx};
     visit::visit_block(blk, new_cx, visitor);
 }
 
@@ -293,7 +293,7 @@ fn resolve_local(local: @ast::local, cx: ctxt, visitor: visit::vt<ctxt>) {
 
 fn resolve_item(item: @ast::item, cx: ctxt, visitor: visit::vt<ctxt>) {
     // Items create a new outer block scope as far as we're concerned.
-    let new_cx: ctxt = ctxt {parent: None with cx};
+    let new_cx: ctxt = ctxt {parent: None,.. cx};
     visit::visit_item(item, new_cx, visitor);
 }
 
@@ -305,7 +305,7 @@ fn resolve_fn(fk: visit::fn_kind, decl: ast::fn_decl, body: ast::blk,
       visit::fk_item_fn(*) | visit::fk_method(*) |
       visit::fk_ctor(*) | visit::fk_dtor(*) => {
         // Top-level functions are a root scope.
-        ctxt {parent: Some(id) with cx}
+        ctxt {parent: Some(id),.. cx}
       }
 
       visit::fk_anon(*) | visit::fk_fn_block(*) => {
@@ -340,8 +340,8 @@ fn resolve_crate(sess: session, def_map: resolve::DefMap,
         visit_pat: resolve_pat,
         visit_stmt: resolve_stmt,
         visit_expr: resolve_expr,
-        visit_local: resolve_local
-        with *visit::default_visitor()
+        visit_local: resolve_local,
+        .. *visit::default_visitor()
     });
     visit::visit_crate(*crate, cx, visitor);
     return cx.region_map;
@@ -771,7 +771,7 @@ fn determine_rp_in_crate(sess: session,
         visit_ty: determine_rp_in_ty,
         visit_ty_method: determine_rp_in_ty_method,
         visit_struct_field: determine_rp_in_struct_field,
-        with *visit::default_visitor()
+        .. *visit::default_visitor()
     });
     visit::visit_crate(*crate, cx, visitor);
 
diff --git a/src/rustc/middle/resolve.rs b/src/rustc/middle/resolve.rs
index 7745d7b9eef..079f4ad14d9 100644
--- a/src/rustc/middle/resolve.rs
+++ b/src/rustc/middle/resolve.rs
@@ -777,9 +777,9 @@ struct Resolver {
             visit_block: |block, context, visitor|
                 (*this).build_reduced_graph_for_block(block,
                                                       context,
-                                                      visitor)
+                                                      visitor),
 
-            with *default_visitor()
+            .. *default_visitor()
         }));
     }
 
@@ -3025,8 +3025,8 @@ struct Resolver {
             visit_local: |local, _context, visitor|
                 self.resolve_local(local, visitor),
             visit_ty: |ty, _context, visitor|
-                self.resolve_type(ty, visitor)
-            with *default_visitor()
+                self.resolve_type(ty, visitor),
+            .. *default_visitor()
         }));
     }
 
diff --git a/src/rustc/middle/trans/alt.rs b/src/rustc/middle/trans/alt.rs
index 8b884792578..b7379b587da 100644
--- a/src/rustc/middle/trans/alt.rs
+++ b/src/rustc/middle/trans/alt.rs
@@ -140,8 +140,8 @@ fn expand_nested_bindings(bcx: block, m: match_, col: uint, val: ValueRef)
                                             mode: mode,
                                             ty: node_id_type(bcx,
                                                              br.pats[col].id)
-                                         }}])
-                                with *br});
+                                         }}]),
+                                .. *br});
           }
           _ => vec::push(result, br)
         }
@@ -174,7 +174,7 @@ fn enter_match(bcx: block, dm: DefMap, m: match_, col: uint, val: ValueRef,
               }
               _ => br.bound
             };
-            vec::push(result, @{pats: pats, bound: bound with *br});
+            vec::push(result, @{pats: pats, bound: bound,.. *br});
           }
           None => ()
         }
diff --git a/src/rustc/middle/trans/base.rs b/src/rustc/middle/trans/base.rs
index 836948aff02..88fc4fb3ff1 100644
--- a/src/rustc/middle/trans/base.rs
+++ b/src/rustc/middle/trans/base.rs
@@ -2841,7 +2841,7 @@ fn trans_lval(cx: block, e: @ast::expr) -> lval_result {
         let root_loc = alloca_zeroed(lv.bcx, type_of(cx.ccx(), ty));
         let bcx = store_temp_expr(lv.bcx, INIT, root_loc, lv, ty, false);
         add_root_cleanup(bcx, scope_id, root_loc, ty);
-        {bcx: bcx with lv}
+        {bcx: bcx,.. lv}
       }
     };
 
@@ -3335,7 +3335,7 @@ fn body_contains_ret(body: ast::blk) -> bool {
                   _ => visit::visit_expr(e, cx, v),
                 }
             }
-        } with *visit::default_visitor()
+        } ,.. *visit::default_visitor()
     }));
     cx.found
 }
@@ -4883,7 +4883,7 @@ fn copy_args_to_allocas(fcx: fn_ctxt, bcx: block, args: ~[ast::arg],
         if slf.is_owned {
             let self_val = PointerCast(bcx, slf.v,
                                        T_ptr(type_of(bcx.ccx(), slf.t)));
-            fcx.llself = Some({v: self_val with slf});
+            fcx.llself = Some({v: self_val,.. slf});
             add_clean(bcx, self_val, slf.t);
         }
       }
@@ -5667,8 +5667,8 @@ fn trans_constant(ccx: @crate_ctxt, it: @ast::item) {
 
 fn trans_constants(ccx: @crate_ctxt, crate: @ast::crate) {
     visit::visit_crate(*crate, (), visit::mk_simple_visitor(@{
-        visit_item: |a| trans_constant(ccx, a)
-        with *visit::default_simple_visitor()
+        visit_item: |a| trans_constant(ccx, a),
+        .. *visit::default_simple_visitor()
     }));
 }
 
@@ -5775,8 +5775,8 @@ fn gather_local_rtcalls(ccx: @crate_ctxt, crate: @ast::crate) {
             }
           }
           _ => ()
-        }
-        with *visit::default_simple_visitor()
+        },
+        .. *visit::default_simple_visitor()
     }));
 }
 
diff --git a/src/rustc/middle/trans/impl.rs b/src/rustc/middle/trans/impl.rs
index af5dcfe3f6b..81e57898091 100644
--- a/src/rustc/middle/trans/impl.rs
+++ b/src/rustc/middle/trans/impl.rs
@@ -120,8 +120,8 @@ fn trans_method_callee(bcx: block, callee_id: ast::node_id,
 
         let {bcx, val} = trans_self_arg(bcx, self, mentry);
         {env: self_env(val, node_id_type(bcx, self.id), None,
-                       mentry.self_mode)
-         with lval_static_fn(bcx, did, callee_id)}
+                       mentry.self_mode),
+         .. lval_static_fn(bcx, did, callee_id)}
       }
       typeck::method_param({trait_id:trait_id, method_num:off,
                             param_num:p, bound_num:b}) => {
@@ -186,8 +186,8 @@ fn trans_static_method_callee(bcx: block, method_id: ast::def_id,
                                         Some(sub_origins));
         {env: null_env,
          val: PointerCast(bcx, lval.val, T_ptr(type_of_fn_from_ty(
-             ccx, node_id_type(bcx, callee_id))))
-         with lval}
+             ccx, node_id_type(bcx, callee_id)))),
+         .. lval}
       }
       _ => {
         fail ~"vtable_param left in monomorphized function's vtable substs";
@@ -255,8 +255,8 @@ fn trans_monomorphized_callee(bcx: block, callee_id: ast::node_id,
         {env: self_env(val, node_id_type(bcx, base.id),
                        None, mentry.self_mode),
          val: PointerCast(bcx, lval.val, T_ptr(type_of_fn_from_ty(
-             ccx, node_id_type(bcx, callee_id))))
-         with lval}
+             ccx, node_id_type(bcx, callee_id)))),
+         .. lval}
       }
       typeck::vtable_trait(*) => {
         let {bcx, val} = trans_temp_expr(bcx, base);
diff --git a/src/rustc/middle/trans/reachable.rs b/src/rustc/middle/trans/reachable.rs
index 1885d8cdb22..234a81a0a28 100644
--- a/src/rustc/middle/trans/reachable.rs
+++ b/src/rustc/middle/trans/reachable.rs
@@ -144,7 +144,7 @@ fn traverse_public_item(cx: ctx, item: @item) {
 }
 
 fn mk_ty_visitor() -> visit::vt<ctx> {
-    visit::mk_vt(@{visit_ty: traverse_ty with *visit::default_visitor()})
+    visit::mk_vt(@{visit_ty: traverse_ty,.. *visit::default_visitor()})
 }
 
 fn traverse_ty(ty: @ty, cx: ctx, v: visit::vt<ctx>) {
@@ -199,8 +199,8 @@ fn traverse_inline_body(cx: ctx, body: blk) {
     }
      visit::visit_block(body, cx, visit::mk_vt(@{
         visit_expr: traverse_expr,
-        visit_item: traverse_item
-        with *visit::default_visitor()
+        visit_item: traverse_item,
+        .. *visit::default_visitor()
     }));
 }
 
@@ -218,8 +218,8 @@ fn traverse_all_resources_and_impls(cx: ctx, crate_mod: _mod) {
               }
               _ => ()
             }
-        }
-        with *visit::default_visitor()
+        },
+        .. *visit::default_visitor()
     }));
 }
 
diff --git a/src/rustc/middle/trans/type_use.rs b/src/rustc/middle/trans/type_use.rs
index faf01781289..10b7992c0f2 100644
--- a/src/rustc/middle/trans/type_use.rs
+++ b/src/rustc/middle/trans/type_use.rs
@@ -287,8 +287,8 @@ fn handle_body(cx: ctx, body: blk) {
                 node_type_needs(cx, use_repr, e.id);
             }
         },
-        visit_item: |_i, _cx, _v| { }
-        with *visit::default_visitor()
+        visit_item: |_i, _cx, _v| { },
+        .. *visit::default_visitor()
     });
     v.visit_block(body, cx, v);
 }
diff --git a/src/rustc/middle/ty.rs b/src/rustc/middle/ty.rs
index a3b9f1d05ac..e0d8f969c05 100644
--- a/src/rustc/middle/ty.rs
+++ b/src/rustc/middle/ty.rs
@@ -1011,7 +1011,7 @@ fn fold_sty(sty: &sty, fldop: fn(t) -> t) -> sty {
             {mode: a.mode, ty: new_ty}
         });
         let new_output = fldop(f.output);
-        ty_fn({inputs: new_args, output: new_output with *f})
+        ty_fn({inputs: new_args, output: new_output,.. *f})
       }
       ty_rptr(r, tm) => {
         ty_rptr(r, {ty: fldop(tm.ty), mutbl: tm.mutbl})
@@ -1110,7 +1110,7 @@ fn fold_regions_and_ty(
         ty::mk_fn(cx, {
             inputs: new_args,
             output: new_output,
-            proto: new_proto with f
+            proto: new_proto,.. f
         })
       }
       ref sty => {
@@ -2915,7 +2915,7 @@ fn substd_enum_variants(cx: ctxt,
 
         let substd_ctor_ty = subst(cx, substs, variant_info.ctor_ty);
 
-        @{args: substd_args, ctor_ty: substd_ctor_ty with *variant_info}
+        @{args: substd_args, ctor_ty: substd_ctor_ty,.. *variant_info}
     }
 }
 
diff --git a/src/rustc/middle/typeck/check.rs b/src/rustc/middle/typeck/check.rs
index ad0eb81c826..ef3b2290983 100644
--- a/src/rustc/middle/typeck/check.rs
+++ b/src/rustc/middle/typeck/check.rs
@@ -188,8 +188,8 @@ impl isr_alist: get_and_find_region {
 
 fn check_item_types(ccx: @crate_ctxt, crate: @ast::crate) {
     let visit = visit::mk_simple_visitor(@{
-        visit_item: |a| check_item(ccx, a)
-        with *visit::default_simple_visitor()
+        visit_item: |a| check_item(ccx, a),
+        .. *visit::default_simple_visitor()
     });
     visit::visit_crate(*crate, (), visit);
 }
@@ -286,7 +286,7 @@ fn check_fn(ccx: @crate_ctxt,
             let ty = method::transform_self_type_for_method(
                 fcx.tcx(), self_region,
                 info.self_ty, info.explicit_self.node);
-            Some({self_ty: ty with info})
+            Some({self_ty: ty,.. info})
         }
     };
 
@@ -405,8 +405,8 @@ fn check_fn(ccx: @crate_ctxt,
                                    visit_pat: visit_pat,
                                    visit_fn: visit_fn,
                                    visit_item: visit_item,
-                                   visit_block: visit_block
-                                   with *visit::default_visitor()});
+                                   visit_block: visit_block,
+                                   .. *visit::default_visitor()});
 
         visit.visit_block(body, (), visit);
     }
@@ -1649,7 +1649,7 @@ fn check_expr_with_unifier(fcx: @fn_ctxt,
                                     fcx.infcx().ty_to_str(fty.output)));
               }
             }
-            ty::mk_fn(tcx, {output: ty::mk_nil(tcx) with fty})
+            ty::mk_fn(tcx, {output: ty::mk_nil(tcx),.. fty})
           }
           _ => {
             tcx.sess.span_fatal(expr.span, ~"a `loop` function's last \
@@ -1672,8 +1672,8 @@ fn check_expr_with_unifier(fcx: @fn_ctxt,
             fcx, expr.span, fcx.node_ty(b.id));
         match ty::get(block_ty).struct {
           ty::ty_fn(fty) => {
-            fcx.write_ty(expr.id, ty::mk_fn(tcx, {output: ty::mk_bool(tcx)
-                                                  with fty}));
+            fcx.write_ty(expr.id, ty::mk_fn(tcx, {output: ty::mk_bool(tcx),
+                                                  .. fty}));
           }
           _ => fail ~"expected fn type"
         }
@@ -2113,8 +2113,8 @@ fn check_block_no_value(fcx: @fn_ctxt, blk: ast::blk) -> bool {
 
 fn check_block(fcx0: @fn_ctxt, blk: ast::blk) -> bool {
     let fcx = match blk.node.rules {
-      ast::unchecked_blk => @fn_ctxt {purity: ast::impure_fn with *fcx0},
-      ast::unsafe_blk => @fn_ctxt {purity: ast::unsafe_fn with *fcx0},
+      ast::unchecked_blk => @fn_ctxt {purity: ast::impure_fn,.. *fcx0},
+      ast::unsafe_blk => @fn_ctxt {purity: ast::unsafe_fn,.. *fcx0},
       ast::default_blk => fcx0
     };
     do fcx.with_region_lb(blk.node.id) {
diff --git a/src/rustc/middle/typeck/check/method.rs b/src/rustc/middle/typeck/check/method.rs
index 994200b7f01..cb4bd4296e3 100644
--- a/src/rustc/middle/typeck/check/method.rs
+++ b/src/rustc/middle/typeck/check/method.rs
@@ -324,8 +324,8 @@ struct lookup {
                 // (where the self type is not permitted), or from a trait
                 // type (in which case methods that refer to self are not
                 // permitted).
-                let substs = {self_ty: Some(self.self_ty)
-                              with bound_substs};
+                let substs = {self_ty: Some(self.self_ty),
+                              .. bound_substs};
 
                 self.add_candidates_from_m(
                     inner_ty,
@@ -371,8 +371,8 @@ struct lookup {
             // Note: although it is illegal to invoke a method that uses self
             // through a trait instance, we use a dummy subst here so that we
             // can soldier on with the compilation.
-            let substs = {self_ty: Some(self.self_ty)
-                          with trait_substs};
+            let substs = {self_ty: Some(self.self_ty),
+                          .. trait_substs};
 
             self.add_candidates_from_m(
                 inner_ty, mode, substs, m, method_trait(did, i));
@@ -411,7 +411,7 @@ struct lookup {
         match ty::get(ty::lookup_item_type(self.tcx(), did).ty).struct {
           ty::ty_fn(fty) => {
             ty::mk_fn(self.tcx(),
-                      {proto: ty::proto_vstore(ty::vstore_box) with fty})
+                      {proto: ty::proto_vstore(ty::vstore_box),.. fty})
           }
           _ => fail ~"ty_from_did: not function ty"
         }
@@ -534,7 +534,7 @@ struct lookup {
           }
           Some(_) => self_substs.self_r
         };
-        let self_substs = {self_r: self_r with self_substs};
+        let self_substs = {self_r: self_r,.. self_substs};
 
         // Before we can be sure we succeeded we need to match the
         // self type against the impl type that we get when we apply
@@ -551,8 +551,8 @@ struct lookup {
 
         // a bit hokey, but the method unbound has a bare protocol, whereas
         // a.b has a protocol like fn@() (perhaps eventually fn&()):
-        let fty = ty::mk_fn(tcx, {proto: ty::proto_vstore(ty::vstore_box)
-                                  with m.fty});
+        let fty = ty::mk_fn(tcx, {proto: ty::proto_vstore(ty::vstore_box),
+                                  .. m.fty});
 
         self.candidates.push(
             {self_ty: self.self_ty,
@@ -689,8 +689,8 @@ struct lookup {
             }
         };
 
-        let all_substs = {tps: vec::append(cand.self_substs.tps, m_substs)
-                          with cand.self_substs};
+        let all_substs = {tps: vec::append(cand.self_substs.tps, m_substs),
+                          .. cand.self_substs};
 
         self.fcx.write_ty_substs(self.node_id, cand.fty, all_substs);
 
diff --git a/src/rustc/middle/typeck/check/regionck.rs b/src/rustc/middle/typeck/check/regionck.rs
index 540a7e9a479..c980b6670a5 100644
--- a/src/rustc/middle/typeck/check/regionck.rs
+++ b/src/rustc/middle/typeck/check/regionck.rs
@@ -112,8 +112,8 @@ fn regionck_visitor() -> rvt {
                    visit_stmt: visit_stmt,
                    visit_expr: visit_expr,
                    visit_block: visit_block,
-                   visit_local: visit_local
-                   with *visit::default_visitor()})
+                   visit_local: visit_local,
+                   .. *visit::default_visitor()})
 }
 
 fn visit_item(_item: @ast::item, &&_rcx: @rcx, _v: rvt) {
diff --git a/src/rustc/middle/typeck/check/regionmanip.rs b/src/rustc/middle/typeck/check/regionmanip.rs
index 2acdfbf8b74..50666b92023 100644
--- a/src/rustc/middle/typeck/check/regionmanip.rs
+++ b/src/rustc/middle/typeck/check/regionmanip.rs
@@ -16,7 +16,7 @@ fn replace_bound_regions_in_fn_ty(
     // Take self_info apart; the self_ty part is the only one we want
     // to update here.
     let (self_ty, rebuild_self_info) = match self_info {
-      Some(s) => (Some(s.self_ty), |t| Some({self_ty: t with s})),
+      Some(s) => (Some(s.self_ty), |t| Some({self_ty: t,.. s})),
       None => (None, |_t| None)
     };
 
diff --git a/src/rustc/middle/typeck/check/vtable.rs b/src/rustc/middle/typeck/check/vtable.rs
index 7409ae738ea..fa0de2e68db 100644
--- a/src/rustc/middle/typeck/check/vtable.rs
+++ b/src/rustc/middle/typeck/check/vtable.rs
@@ -464,8 +464,8 @@ fn resolve_in_block(fcx: @fn_ctxt, bl: ast::blk) {
     visit::visit_block(bl, fcx, visit::mk_vt(@{
         visit_expr: resolve_expr,
         visit_item: fn@(_i: @ast::item, &&_e: @fn_ctxt,
-                        _v: visit::vt<@fn_ctxt>) {}
-        with *visit::default_visitor()
+                        _v: visit::vt<@fn_ctxt>) {},
+        .. *visit::default_visitor()
     }));
 }
 
diff --git a/src/rustc/middle/typeck/check/writeback.rs b/src/rustc/middle/typeck/check/writeback.rs
index 694b0ae03b8..f132337b686 100644
--- a/src/rustc/middle/typeck/check/writeback.rs
+++ b/src/rustc/middle/typeck/check/writeback.rs
@@ -185,8 +185,8 @@ fn mk_visitor() -> visit::vt<wb_ctxt> {
                    visit_expr: visit_expr,
                    visit_block: visit_block,
                    visit_pat: visit_pat,
-                   visit_local: visit_local
-                   with *visit::default_visitor()})
+                   visit_local: visit_local,
+                   .. *visit::default_visitor()})
 }
 
 fn resolve_type_vars_in_expr(fcx: @fn_ctxt, e: @ast::expr) -> bool {
diff --git a/src/rustc/middle/typeck/coherence.rs b/src/rustc/middle/typeck/coherence.rs
index 3820b9110f4..1377e41cdca 100644
--- a/src/rustc/middle/typeck/coherence.rs
+++ b/src/rustc/middle/typeck/coherence.rs
@@ -212,8 +212,8 @@ struct CoherenceChecker {
                     // Nothing to do.
                   }
                 };
-            }
-            with *default_simple_visitor()
+            },
+            .. *default_simple_visitor()
         }));
     }
 
@@ -237,8 +237,8 @@ struct CoherenceChecker {
                         // Nothing to do.
                     }
                 };
-            }
-            with *default_simple_visitor()
+            },
+            .. *default_simple_visitor()
         }));
 
         // Check trait coherence.
@@ -501,8 +501,8 @@ struct CoherenceChecker {
                         visit_item(item, (), visitor);
                     }
                 }
-            }
-            with *default_visitor()
+            },
+            .. *default_visitor()
         }));
     }
 
diff --git a/src/rustc/middle/typeck/collect.rs b/src/rustc/middle/typeck/collect.rs
index d3b407db13d..7bde062008d 100644
--- a/src/rustc/middle/typeck/collect.rs
+++ b/src/rustc/middle/typeck/collect.rs
@@ -66,8 +66,8 @@ fn collect_item_types(ccx: @crate_ctxt, crate: @ast::crate) {
 
     visit::visit_crate(*crate, (), visit::mk_simple_visitor(@{
         visit_item: |a|convert(ccx, a),
-        visit_foreign_item: |a|convert_foreign(ccx, a)
-        with *visit::default_simple_visitor()
+        visit_foreign_item: |a|convert_foreign(ccx, a),
+        .. *visit::default_simple_visitor()
     }));
 }
 
diff --git a/src/rustc/middle/typeck/infer/lattice.rs b/src/rustc/middle/typeck/infer/lattice.rs
index 482cd4d7703..998d32bdad3 100644
--- a/src/rustc/middle/typeck/infer/lattice.rs
+++ b/src/rustc/middle/typeck/infer/lattice.rs
@@ -17,7 +17,7 @@ trait lattice_ops {
 impl Lub: lattice_ops {
     fn bnd(b: bounds<ty::t>) -> Option<ty::t> { b.ub }
     fn with_bnd(b: bounds<ty::t>, t: ty::t) -> bounds<ty::t> {
-        {ub: Some(t) with b}
+        {ub: Some(t),.. b}
     }
     fn ty_bot(t: ty::t) -> cres<ty::t> {
         Ok(t)
@@ -27,7 +27,7 @@ impl Lub: lattice_ops {
 impl Glb: lattice_ops {
     fn bnd(b: bounds<ty::t>) -> Option<ty::t> { b.lb }
     fn with_bnd(b: bounds<ty::t>, t: ty::t) -> bounds<ty::t> {
-        {lb: Some(t) with b}
+        {lb: Some(t),.. b}
     }
     fn ty_bot(_t: ty::t) -> cres<ty::t> {
         Ok(ty::mk_bot(self.infcx.tcx))
diff --git a/src/rustc/middle/typeck/infer/sub.rs b/src/rustc/middle/typeck/infer/sub.rs
index bb36473dc3d..1163c75c7fe 100644
--- a/src/rustc/middle/typeck/infer/sub.rs
+++ b/src/rustc/middle/typeck/infer/sub.rs
@@ -15,14 +15,14 @@ impl Sub: combine {
 
     fn contratys(a: ty::t, b: ty::t) -> cres<ty::t> {
         let opp = combine_fields {
-            a_is_expected: !self.a_is_expected, with *self
+            a_is_expected: !self.a_is_expected,.. *self
         };
         Sub(opp).tys(b, a)
     }
 
     fn contraregions(a: ty::region, b: ty::region) -> cres<ty::region> {
         let opp = combine_fields {
-            a_is_expected: !self.a_is_expected, with *self
+            a_is_expected: !self.a_is_expected,.. *self
         };
         Sub(opp).regions(b, a)
     }
diff --git a/src/rustc/util/common.rs b/src/rustc/util/common.rs
index 7cef04c3e58..a4754fd4769 100644
--- a/src/rustc/util/common.rs
+++ b/src/rustc/util/common.rs
@@ -51,7 +51,7 @@ fn loop_query(b: ast::blk, p: fn@(ast::expr_) -> bool) -> bool {
         }
     };
     let v = visit::mk_vt(@{visit_expr: visit_expr
-                           with *visit::default_visitor()});
+                           ,.. *visit::default_visitor()});
     visit::visit_block(b, rs, v);
     return *rs;
 }