about summary refs log tree commit diff
path: root/src/libsyntax/visit.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax/visit.rs')
-rw-r--r--src/libsyntax/visit.rs187
1 files changed, 91 insertions, 96 deletions
diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs
index dad722d2182..48f2e57de1c 100644
--- a/src/libsyntax/visit.rs
+++ b/src/libsyntax/visit.rs
@@ -13,13 +13,13 @@ import codemap::span;
 enum vt<E> { mk_vt(visitor<E>), }
 
 enum fn_kind {
-    fk_item_fn(ident, [ty_param]/~), //< an item declared with fn()
-    fk_method(ident, [ty_param]/~, @method),
+    fk_item_fn(ident, ~[ty_param]), //< an item declared with fn()
+    fk_method(ident, ~[ty_param], @method),
     fk_anon(proto, capture_clause),  //< an anonymous function like fn@(...)
     fk_fn_block(capture_clause),     //< a block {||...}
-    fk_ctor(ident, [ty_param]/~, node_id /* self id */,
+    fk_ctor(ident, ~[ty_param], node_id /* self id */,
             def_id /* parent class id */), // class constructor
-    fk_dtor([ty_param]/~, node_id /* self id */,
+    fk_dtor(~[ty_param], node_id /* self id */,
             def_id /* parent class id */) // class destructor
 
 }
@@ -33,13 +33,13 @@ fn name_of_fn(fk: fn_kind) -> ident {
     }
 }
 
-fn tps_of_fn(fk: fn_kind) -> [ty_param]/~ {
+fn tps_of_fn(fk: fn_kind) -> ~[ty_param] {
     alt fk {
       fk_item_fn(_, tps) | fk_method(_, tps, _)
               | fk_ctor(_, tps, _, _) | fk_dtor(tps, _, _) {
           /* FIXME (#2543) */ copy tps
       }
-      fk_anon(*) | fk_fn_block(*) { []/~ }
+      fk_anon(*) | fk_fn_block(*) { ~[] }
     }
 }
 
@@ -58,28 +58,28 @@ type visitor<E> =
       visit_decl: fn@(@decl, E, vt<E>),
       visit_expr: fn@(@expr, E, vt<E>),
       visit_ty: fn@(@ty, E, vt<E>),
-      visit_ty_params: fn@([ty_param]/~, E, vt<E>),
+      visit_ty_params: fn@(~[ty_param], E, vt<E>),
       visit_constr: fn@(@path, span, node_id, E, vt<E>),
       visit_fn: fn@(fn_kind, fn_decl, blk, span, node_id, E, vt<E>),
       visit_class_item: fn@(@class_member, E, vt<E>)};
 
 fn default_visitor<E>() -> visitor<E> {
-    ret @{visit_mod: {|a,b,c,d,e|visit_mod::<E>(a, b, c, d, e)},
-          visit_view_item: {|a,b,c|visit_view_item::<E>(a, b, c)},
-          visit_foreign_item: {|a,b,c|visit_foreign_item::<E>(a, b, c)},
-          visit_item: {|a,b,c|visit_item::<E>(a, b, c)},
-          visit_local: {|a,b,c|visit_local::<E>(a, b, c)},
-          visit_block: {|a,b,c|visit_block::<E>(a, b, c)},
-          visit_stmt: {|a,b,c|visit_stmt::<E>(a, b, c)},
-          visit_arm: {|a,b,c|visit_arm::<E>(a, b, c)},
-          visit_pat: {|a,b,c|visit_pat::<E>(a, b, c)},
-          visit_decl: {|a,b,c|visit_decl::<E>(a, b, c)},
-          visit_expr: {|a,b,c|visit_expr::<E>(a, b, c)},
-          visit_ty: {|a,b,c|skip_ty::<E>(a, b, c)},
-          visit_ty_params: {|a,b,c|visit_ty_params::<E>(a, b, c)},
-          visit_constr: {|a,b,c,d,e|visit_constr::<E>(a, b, c, d, e)},
-          visit_fn: {|a,b,c,d,e,f,g|visit_fn::<E>(a, b, c, d, e, f, g)},
-          visit_class_item: {|a,b,c|visit_class_item::<E>(a, b, c)}};
+    ret @{visit_mod: |a,b,c,d,e|visit_mod::<E>(a, b, c, d, e),
+          visit_view_item: |a,b,c|visit_view_item::<E>(a, b, c),
+          visit_foreign_item: |a,b,c|visit_foreign_item::<E>(a, b, c),
+          visit_item: |a,b,c|visit_item::<E>(a, b, c),
+          visit_local: |a,b,c|visit_local::<E>(a, b, c),
+          visit_block: |a,b,c|visit_block::<E>(a, b, c),
+          visit_stmt: |a,b,c|visit_stmt::<E>(a, b, c),
+          visit_arm: |a,b,c|visit_arm::<E>(a, b, c),
+          visit_pat: |a,b,c|visit_pat::<E>(a, b, c),
+          visit_decl: |a,b,c|visit_decl::<E>(a, b, c),
+          visit_expr: |a,b,c|visit_expr::<E>(a, b, c),
+          visit_ty: |a,b,c|skip_ty::<E>(a, b, c),
+          visit_ty_params: |a,b,c|visit_ty_params::<E>(a, b, c),
+          visit_constr: |a,b,c,d,e|visit_constr::<E>(a, b, c, d, e),
+          visit_fn: |a,b,c,d,e,f,g|visit_fn::<E>(a, b, c, d, e, f, g),
+          visit_class_item: |a,b,c|visit_class_item::<E>(a, b, c)};
 }
 
 fn visit_crate<E>(c: crate, e: E, v: vt<E>) {
@@ -90,7 +90,7 @@ fn visit_crate_directive<E>(cd: @crate_directive, e: E, v: vt<E>) {
     alt cd.node {
       cdir_src_mod(_, _) { }
       cdir_dir_mod(_, cdirs, _) {
-        for cdirs.each {|cdir|
+        for cdirs.each |cdir| {
             visit_crate_directive(cdir, e, v);
         }
       }
@@ -100,8 +100,8 @@ fn visit_crate_directive<E>(cd: @crate_directive, e: E, v: vt<E>) {
 }
 
 fn visit_mod<E>(m: _mod, _sp: span, _id: node_id, e: E, v: vt<E>) {
-    for m.view_items.each {|vi| v.visit_view_item(vi, e, v); }
-    for m.items.each {|i| v.visit_item(i, e, v); }
+    for m.view_items.each |vi| { v.visit_view_item(vi, e, v); }
+    for m.items.each |i| { v.visit_item(i, e, v); }
 }
 
 fn visit_view_item<E>(_vi: @view_item, _e: E, _v: vt<E>) { }
@@ -122,8 +122,8 @@ fn visit_item<E>(i: @item, e: E, v: vt<E>) {
       }
       item_mod(m) { v.visit_mod(m, i.span, i.id, e, v); }
       item_foreign_mod(nm) {
-        for nm.view_items.each {|vi| v.visit_view_item(vi, e, v); }
-        for nm.items.each {|ni| v.visit_foreign_item(ni, e, v); }
+        for nm.view_items.each |vi| { v.visit_view_item(vi, e, v); }
+        for nm.items.each |ni| { v.visit_foreign_item(ni, e, v); }
       }
       item_ty(t, tps, rp) {
         v.visit_ty(t, e, v);
@@ -131,34 +131,34 @@ fn visit_item<E>(i: @item, e: E, v: vt<E>) {
       }
       item_enum(variants, tps, _) {
         v.visit_ty_params(tps, e, v);
-        for variants.each {|vr|
-            for vr.node.args.each {|va| v.visit_ty(va.ty, e, v); }
+        for variants.each |vr| {
+            for vr.node.args.each |va| { v.visit_ty(va.ty, e, v); }
         }
       }
       item_impl(tps, _rp, ifce, ty, methods) {
         v.visit_ty_params(tps, e, v);
-        option::iter(ifce, {|p| visit_path(p.path, e, v)});
+        option::iter(ifce, |p| visit_path(p.path, e, v));
         v.visit_ty(ty, e, v);
-        for methods.each {|m|
+        for methods.each |m| {
             visit_method_helper(m, e, v)
         }
       }
       item_class(tps, ifaces, members, ctor, m_dtor, _) {
           v.visit_ty_params(tps, e, v);
-          for members.each {|m|
+          for members.each |m| {
              v.visit_class_item(m, e, v);
           }
-          for ifaces.each {|p| visit_path(p.path, e, v); }
+          for ifaces.each |p| { visit_path(p.path, e, v); }
           visit_class_ctor_helper(ctor, i.ident, tps,
                                   ast_util::local_def(i.id), e, v);
-          option::iter(m_dtor) {|dtor|
+          do option::iter(m_dtor) |dtor| {
                   visit_class_dtor_helper(dtor, tps,
                      ast_util::local_def(i.id), e, v)};
       }
       item_iface(tps, _rp, methods) {
         v.visit_ty_params(tps, e, v);
-        for methods.each {|m|
-            for m.decl.inputs.each {|a| v.visit_ty(a.ty, e, v); }
+        for methods.each |m| {
+            for m.decl.inputs.each |a| { v.visit_ty(a.ty, e, v); }
             v.visit_ty_params(m.tps, e, v);
             v.visit_ty(m.decl.output, e, v);
         }
@@ -186,12 +186,12 @@ fn visit_ty<E>(t: @ty, e: E, v: vt<E>) {
         v.visit_ty(mt.ty, e, v);
       }
       ty_rec(flds) {
-        for flds.each {|f| v.visit_ty(f.node.mt.ty, e, v); }
+        for flds.each |f| { v.visit_ty(f.node.mt.ty, e, v); }
       }
-      ty_tup(ts) { for ts.each {|tt| v.visit_ty(tt, e, v); } }
+      ty_tup(ts) { for ts.each |tt| { v.visit_ty(tt, e, v); } }
       ty_fn(_, decl) {
-        for decl.inputs.each {|a| v.visit_ty(a.ty, e, v); }
-        for decl.constraints.each {|c|
+        for decl.inputs.each |a| { v.visit_ty(a.ty, e, v); }
+        for decl.constraints.each |c| {
             v.visit_constr(c.node.path, c.span, c.node.id, e, v);
         }
         v.visit_ty(decl.output, e, v);
@@ -202,7 +202,7 @@ fn visit_ty<E>(t: @ty, e: E, v: vt<E>) {
       }
       ty_constr(t, cs) {
         v.visit_ty(t, e, v);
-        for cs.each {|tc|
+        for cs.each |tc| {
             v.visit_constr(tc.node.path, tc.span, tc.node.id, e, v);
         }
       }
@@ -220,26 +220,26 @@ fn visit_constr<E>(_operator: @path, _sp: span, _id: node_id, _e: E,
 }
 
 fn visit_path<E>(p: @path, e: E, v: vt<E>) {
-    for p.types.each {|tp| v.visit_ty(tp, e, v); }
+    for p.types.each |tp| { v.visit_ty(tp, e, v); }
 }
 
 fn visit_pat<E>(p: @pat, e: E, v: vt<E>) {
     alt p.node {
       pat_enum(path, children) {
         visit_path(path, e, v);
-        option::iter(children) {|children|
-                for children.each {|child| v.visit_pat(child, e, v); }}
+        do option::iter(children) |children| {
+            for children.each |child| { v.visit_pat(child, e, v); }}
       }
       pat_rec(fields, _) {
-        for fields.each {|f| v.visit_pat(f.pat, e, v); }
+          for fields.each |f| { v.visit_pat(f.pat, e, v); }
       }
-      pat_tup(elts) { for elts.each {|elt| v.visit_pat(elt, e, v); } }
+      pat_tup(elts) { for elts.each |elt| { v.visit_pat(elt, e, v); } }
       pat_box(inner) | pat_uniq(inner) {
         v.visit_pat(inner, e, v);
       }
       pat_ident(path, inner) {
           visit_path(path, e, v);
-          option::iter(inner) {|subpat| v.visit_pat(subpat, e, v)};
+          do option::iter(inner) |subpat| { v.visit_pat(subpat, e, v)};
       }
       pat_lit(ex) { v.visit_expr(ex, e, v); }
       pat_range(e1, e2) { v.visit_expr(e1, e, v); v.visit_expr(e2, e, v); }
@@ -256,9 +256,9 @@ fn visit_foreign_item<E>(ni: @foreign_item, e: E, v: vt<E>) {
     }
 }
 
-fn visit_ty_params<E>(tps: [ty_param]/~, e: E, v: vt<E>) {
-    for tps.each {|tp|
-        for vec::each(*tp.bounds) {|bound|
+fn visit_ty_params<E>(tps: ~[ty_param], e: E, v: vt<E>) {
+    for tps.each |tp| {
+        for vec::each(*tp.bounds) |bound| {
             alt bound {
               bound_iface(t) { v.visit_ty(t, e, v); }
               bound_copy | bound_send | bound_const { }
@@ -268,8 +268,8 @@ fn visit_ty_params<E>(tps: [ty_param]/~, e: E, v: vt<E>) {
 }
 
 fn visit_fn_decl<E>(fd: fn_decl, e: E, v: vt<E>) {
-    for fd.inputs.each {|a| v.visit_ty(a.ty, e, v); }
-    for fd.constraints.each {|c|
+    for fd.inputs.each |a| { v.visit_ty(a.ty, e, v); }
+    for fd.constraints.each |c| {
         v.visit_constr(c.node.path, c.span, c.node.id, e, v);
     }
     v.visit_ty(fd.output, e, v);
@@ -286,7 +286,7 @@ fn visit_method_helper<E>(m: @method, e: E, v: vt<E>) {
 }
 
 // Similar logic to the comment on visit_method_helper - Tim
-fn visit_class_ctor_helper<E>(ctor: class_ctor, nm: ident, tps: [ty_param]/~,
+fn visit_class_ctor_helper<E>(ctor: class_ctor, nm: ident, tps: ~[ty_param],
                               parent_id: def_id, e: E, v: vt<E>) {
     v.visit_fn(fk_ctor(/* FIXME (#2543) */ copy nm,
                        /* FIXME (#2543) */ copy tps,
@@ -295,7 +295,7 @@ fn visit_class_ctor_helper<E>(ctor: class_ctor, nm: ident, tps: [ty_param]/~,
 
 }
 
-fn visit_class_dtor_helper<E>(dtor: class_dtor, tps: [ty_param]/~,
+fn visit_class_dtor_helper<E>(dtor: class_dtor, tps: ~[ty_param],
                               parent_id: def_id, e: E, v: vt<E>) {
     v.visit_fn(fk_dtor(/* FIXME (#2543) */ copy tps, dtor.node.self_id,
                        parent_id), ast_util::dtor_dec(),
@@ -311,8 +311,8 @@ fn visit_fn<E>(fk: fn_kind, decl: fn_decl, body: blk, _sp: span,
 }
 
 fn visit_block<E>(b: ast::blk, e: E, v: vt<E>) {
-    for b.node.view_items.each {|vi| v.visit_view_item(vi, e, v); }
-    for b.node.stmts.each {|s| v.visit_stmt(s, e, v); }
+    for b.node.view_items.each |vi| { v.visit_view_item(vi, e, v); }
+    for b.node.stmts.each |s| { v.visit_stmt(s, e, v); }
     visit_expr_opt(b.node.expr, e, v);
 }
 
@@ -327,7 +327,7 @@ fn visit_stmt<E>(s: @stmt, e: E, v: vt<E>) {
 fn visit_decl<E>(d: @decl, e: E, v: vt<E>) {
     alt d.node {
       decl_local(locs) {
-        for locs.each {|loc| v.visit_local(loc, e, v); }
+        for locs.each |loc| { v.visit_local(loc, e, v); }
       }
       decl_item(it) { v.visit_item(it, e, v); }
     }
@@ -337,14 +337,14 @@ fn visit_expr_opt<E>(eo: option<@expr>, e: E, v: vt<E>) {
     alt eo { none { } some(ex) { v.visit_expr(ex, e, v); } }
 }
 
-fn visit_exprs<E>(exprs: [@expr]/~, e: E, v: vt<E>) {
-    for exprs.each {|ex| v.visit_expr(ex, e, v); }
+fn visit_exprs<E>(exprs: ~[@expr], e: E, v: vt<E>) {
+    for exprs.each |ex| { v.visit_expr(ex, e, v); }
 }
 
 fn visit_mac<E>(m: mac, e: E, v: vt<E>) {
     alt m.node {
       ast::mac_invoc(pth, arg, body) {
-        option::map(arg) {|arg| v.visit_expr(arg, e, v)}; }
+        option::map(arg, |arg| v.visit_expr(arg, e, v)); }
       ast::mac_invoc_tt(pth, tt) { /* no user-serviceable parts inside */ }
       ast::mac_embed_type(ty) { v.visit_ty(ty, e, v); }
       ast::mac_embed_block(blk) { v.visit_block(blk, e, v); }
@@ -363,10 +363,10 @@ fn visit_expr<E>(ex: @expr, e: E, v: vt<E>) {
       expr_vstore(x, _) { v.visit_expr(x, e, v); }
       expr_vec(es, _) { visit_exprs(es, e, v); }
       expr_rec(flds, base) {
-        for flds.each {|f| v.visit_expr(f.node.expr, e, v); }
+        for flds.each |f| { v.visit_expr(f.node.expr, e, v); }
         visit_expr_opt(base, e, v);
       }
-      expr_tup(elts) { for elts.each {|el| v.visit_expr(el, e, v); } }
+      expr_tup(elts) { for elts.each |el| { v.visit_expr(el, e, v); } }
       expr_call(callee, args, _) {
         visit_exprs(args, e, v);
         v.visit_expr(callee, e, v);
@@ -393,7 +393,7 @@ fn visit_expr<E>(ex: @expr, e: E, v: vt<E>) {
       expr_loop(b) { v.visit_block(b, e, v); }
       expr_alt(x, arms, _) {
         v.visit_expr(x, e, v);
-        for arms.each {|a| v.visit_arm(a, e, v); }
+        for arms.each |a| { v.visit_arm(a, e, v); }
       }
       expr_fn(proto, decl, body, cap_clause) {
         v.visit_fn(fk_anon(proto, cap_clause), decl, body,
@@ -414,7 +414,7 @@ fn visit_expr<E>(ex: @expr, e: E, v: vt<E>) {
       }
       expr_field(x, _, tys) {
         v.visit_expr(x, e, v);
-        for tys.each {|tp| v.visit_ty(tp, e, v); }
+        for tys.each |tp| { v.visit_ty(tp, e, v); }
       }
       expr_index(a, b) { v.visit_expr(a, e, v); v.visit_expr(b, e, v); }
       expr_path(p) { visit_path(p, e, v); }
@@ -431,7 +431,7 @@ fn visit_expr<E>(ex: @expr, e: E, v: vt<E>) {
 }
 
 fn visit_arm<E>(a: arm, e: E, v: vt<E>) {
-    for a.pats.each {|p| v.visit_pat(p, e, v); }
+    for a.pats.each |p| { v.visit_pat(p, e, v); }
     visit_expr_opt(a.guard, e, v);
     v.visit_block(a.body, e, v);
 }
@@ -454,7 +454,7 @@ type simple_visitor =
       visit_decl: fn@(@decl),
       visit_expr: fn@(@expr),
       visit_ty: fn@(@ty),
-      visit_ty_params: fn@([ty_param]/~),
+      visit_ty_params: fn@(~[ty_param]),
       visit_constr: fn@(@path, span, node_id),
       visit_fn: fn@(fn_kind, fn_decl, blk, span, node_id),
       visit_class_item: fn@(@class_member)};
@@ -474,7 +474,7 @@ fn default_simple_visitor() -> simple_visitor {
           visit_decl: fn@(_d: @decl) { },
           visit_expr: fn@(_e: @expr) { },
           visit_ty: simple_ignore_ty,
-          visit_ty_params: fn@(_ps: [ty_param]/~) {},
+          visit_ty_params: fn@(_ps: ~[ty_param]) {},
           visit_constr: fn@(_p: @path, _sp: span, _id: node_id) { },
           visit_fn: fn@(_fk: fn_kind, _d: fn_decl, _b: blk, _sp: span,
                         _id: node_id) { },
@@ -533,8 +533,8 @@ fn mk_simple_visitor(v: simple_visitor) -> vt<()> {
         f(ty);
         visit_ty(ty, e, v);
     }
-    fn v_ty_params(f: fn@([ty_param]/~),
-                   ps: [ty_param]/~,
+    fn v_ty_params(f: fn@(~[ty_param]),
+                   ps: ~[ty_param],
                    &&e: (), v: vt<()>) {
         f(ps);
         visit_ty_params(ps, e, v);
@@ -551,9 +551,9 @@ fn mk_simple_visitor(v: simple_visitor) -> vt<()> {
         visit_fn(fk, decl, body, sp, id, e, v);
     }
     let visit_ty = if v.visit_ty == simple_ignore_ty {
-        {|a,b,c| skip_ty(a, b, c)}
+        |a,b,c| skip_ty(a, b, c)
     } else {
-        {|a,b,c| v_ty(v.visit_ty, a, b, c)}
+        |a,b,c| v_ty(v.visit_ty, a, b, c)
     };
     fn v_class_item(f: fn@(@class_member),
                     cm: @class_member, &&e: (),
@@ -561,33 +561,28 @@ fn mk_simple_visitor(v: simple_visitor) -> vt<()> {
         f(cm);
         visit_class_item(cm, e, v);
     }
-    ret mk_vt(@{visit_mod: {|a,b,c,d,e|v_mod(v.visit_mod, a, b, c, d, e)},
-                visit_view_item: {|a,b,c|
-                    v_view_item(v.visit_view_item, a, b, c)
-                },
+    ret mk_vt(@{visit_mod: |a,b,c,d,e|v_mod(v.visit_mod, a, b, c, d, e),
+                visit_view_item: |a,b,c|
+                    v_view_item(v.visit_view_item, a, b, c),
                 visit_foreign_item:
-                    {|a,b,c|v_foreign_item(v.visit_foreign_item, a, b, c)},
-                visit_item: {|a,b,c|v_item(v.visit_item, a, b, c)},
-                visit_local: {|a,b,c|v_local(v.visit_local, a, b, c)},
-                visit_block: {|a,b,c|v_block(v.visit_block, a, b, c)},
-                visit_stmt: {|a,b,c|v_stmt(v.visit_stmt, a, b, c)},
-                visit_arm: {|a,b,c|v_arm(v.visit_arm, a, b, c)},
-                visit_pat: {|a,b,c|v_pat(v.visit_pat, a, b, c)},
-                visit_decl: {|a,b,c|v_decl(v.visit_decl, a, b, c)},
-                visit_expr: {|a,b,c|v_expr(v.visit_expr, a, b, c)},
+                    |a,b,c|v_foreign_item(v.visit_foreign_item, a, b, c),
+                visit_item: |a,b,c|v_item(v.visit_item, a, b, c),
+                visit_local: |a,b,c|v_local(v.visit_local, a, b, c),
+                visit_block: |a,b,c|v_block(v.visit_block, a, b, c),
+                visit_stmt: |a,b,c|v_stmt(v.visit_stmt, a, b, c),
+                visit_arm: |a,b,c|v_arm(v.visit_arm, a, b, c),
+                visit_pat: |a,b,c|v_pat(v.visit_pat, a, b, c),
+                visit_decl: |a,b,c|v_decl(v.visit_decl, a, b, c),
+                visit_expr: |a,b,c|v_expr(v.visit_expr, a, b, c),
                 visit_ty: visit_ty,
-                visit_ty_params: {|a,b,c|
-                    v_ty_params(v.visit_ty_params, a, b, c)
-                },
-                visit_constr: {|a,b,c,d,e|
-                    v_constr(v.visit_constr, a, b, c, d, e)
-                },
-                visit_fn: {|a,b,c,d,e,f,g|
-                    v_fn(v.visit_fn, a, b, c, d, e, f, g)
-                },
-                visit_class_item: {|a,b,c|
+                visit_ty_params: |a,b,c|
+                    v_ty_params(v.visit_ty_params, a, b, c),
+                visit_constr: |a,b,c,d,e|
+                    v_constr(v.visit_constr, a, b, c, d, e),
+                visit_fn: |a,b,c,d,e,f,g|
+                    v_fn(v.visit_fn, a, b, c, d, e, f, g),
+                visit_class_item: |a,b,c|
                     v_class_item(v.visit_class_item, a, b, c)
-                }
                });
 }