summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorMichael Sullivan <sully@msully.net>2012-06-29 16:26:56 -0700
committerMichael Sullivan <sully@msully.net>2012-06-29 17:41:45 -0700
commit98e161f00e8850b0f5c6a3a9f1b22b222c2355b7 (patch)
tree4e026fed97dda63a5394b86235a27eeb1015b094 /src/libsyntax/parse/parser.rs
parente6baf44f1982d1a5e49cc4a0b5eaeb857418e35e (diff)
downloadrust-98e161f00e8850b0f5c6a3a9f1b22b222c2355b7.tar.gz
rust-98e161f00e8850b0f5c6a3a9f1b22b222c2355b7.zip
Switch the compiler over to using ~[] notation instead of []/~. Closes #2759.
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
-rw-r--r--src/libsyntax/parse/parser.rs200
1 files changed, 100 insertions, 100 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 1543e1a1ba1..c9406731030 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -52,10 +52,10 @@ enum pexpr {
  */
 enum class_contents { ctor_decl(fn_decl, blk, codemap::span),
                       dtor_decl(blk, codemap::span),
-                      members([@class_member]/~) }
+                      members(~[@class_member]) }
 
 type arg_or_capture_item = either<arg, capture_item>;
-type item_info = (ident, item_, option<[attribute]/~>);
+type item_info = (ident, item_, option<~[attribute]>);
 
 class parser {
     let sess: parse_sess;
@@ -178,14 +178,14 @@ class parser {
         // functions can't have constrained types. Not sure whether
         // that would be desirable anyway. See bug for the story on
         // constrained types.
-        let constrs: [@constr]/~ = []/~;
+        let constrs: ~[@constr] = ~[];
         let (ret_style, ret_ty) = self.parse_ret_ty();
         ret {inputs: inputs, output: ret_ty,
              purity: purity, cf: ret_style,
              constraints: constrs};
     }
 
-    fn parse_ty_methods() -> [ty_method]/~ {
+    fn parse_ty_methods() -> ~[ty_method] {
         self.parse_unspanned_seq(token::LBRACE, token::RBRACE,
                                  seq_sep_none()) { |p|
             let attrs = p.parse_outer_attributes();
@@ -217,7 +217,7 @@ class parser {
 
     // if i is the jth ident in args, return j
     // otherwise, fail
-    fn ident_index(args: [arg]/~, i: ident) -> uint {
+    fn ident_index(args: ~[arg], i: ident) -> uint {
         let mut j = 0u;
         for args.each {|a| if a.ident == i { ret j; } j += 1u; }
         self.fatal("unbound variable `" + *i + "` in constraint arg");
@@ -237,7 +237,7 @@ class parser {
         ret @{node: carg, span: sp};
     }
 
-    fn parse_constr_arg(args: [arg]/~) -> @constr_arg {
+    fn parse_constr_arg(args: ~[arg]) -> @constr_arg {
         let sp = self.span;
         let mut carg = carg_base;
         if self.token == token::BINOP(token::STAR) {
@@ -249,7 +249,7 @@ class parser {
         ret @{node: carg, span: sp};
     }
 
-    fn parse_ty_constr(fn_args: [arg]/~) -> @constr {
+    fn parse_ty_constr(fn_args: ~[arg]) -> @constr {
         let lo = self.span.lo;
         let path = self.parse_path_without_tps();
         let args = self.parse_unspanned_seq(
@@ -263,7 +263,7 @@ class parser {
     fn parse_constr_in_type() -> @ty_constr {
         let lo = self.span.lo;
         let path = self.parse_path_without_tps();
-        let args: [@ty_constr_arg]/~ = self.parse_unspanned_seq(
+        let args: ~[@ty_constr_arg] = self.parse_unspanned_seq(
             token::LPAREN, token::RPAREN,
             seq_sep_trailing_disallowed(token::COMMA),
             {|p| p.parse_type_constr_arg()});
@@ -274,8 +274,8 @@ class parser {
 
 
     fn parse_constrs<T: copy>(pser: fn(parser) -> @constr_general<T>) ->
-        [@constr_general<T>]/~ {
-        let mut constrs: [@constr_general<T>]/~ = []/~;
+        ~[@constr_general<T>] {
+        let mut constrs: ~[@constr_general<T>] = ~[];
         loop {
             let constr = pser(self);
             vec::push(constrs, constr);
@@ -284,7 +284,7 @@ class parser {
         };
     }
 
-    fn parse_type_constraints() -> [@ty_constr]/~ {
+    fn parse_type_constraints() -> ~[@ty_constr] {
         ret self.parse_constrs({|p| p.parse_constr_in_type()});
     }
 
@@ -361,7 +361,7 @@ class parser {
                 self.bump();
                 ty_nil
             } else {
-                let mut ts = [self.parse_ty(false)]/~;
+                let mut ts = ~[self.parse_ty(false)];
                 while self.token == token::COMMA {
                     self.bump();
                     vec::push(ts, self.parse_ty(false));
@@ -373,7 +373,7 @@ class parser {
             }
         } else if self.token == token::AT {
             self.bump();
-            // HACK: turn @[...] into a []/@
+            // HACK: turn @[...] into a @-evec
             alt self.parse_mt() {
               {ty: t @ @{node: ty_vec(_), _}, mutbl: m_imm} {
                 ty_vstore(t, vstore_box)
@@ -382,7 +382,7 @@ class parser {
             }
         } else if self.token == token::TILDE {
             self.bump();
-            // HACK: turn ~[...] into a []/~
+            // HACK: turn ~[...] into a ~-evec
             alt self.parse_mt() {
               {ty: t @ @{node: ty_vec(_), _}, mutbl: m_imm} {
                 ty_vstore(t, vstore_uniq)
@@ -418,7 +418,7 @@ class parser {
         } else if self.token == token::BINOP(token::AND) {
             self.bump();
             let region = self.parse_region_dot();
-            // HACK: turn &a.[...] into a []/&a
+            // HACK: turn &a.[...] into a &a-evec
             alt self.parse_mt() {
               {ty: t @ @{node: ty_vec(_), _}, mutbl: m_imm} {
                 ty_vstore(t, vstore_slice(region))
@@ -603,7 +603,7 @@ class parser {
 
         let lo = self.span.lo;
         let global = self.eat(token::MOD_SEP);
-        let mut ids = []/~;
+        let mut ids = ~[];
         loop {
             let is_not_last =
                 self.look_ahead(2u) != token::LT
@@ -618,7 +618,7 @@ class parser {
             }
         }
         @{span: mk_sp(lo, self.last_span.hi), global: global,
-          idents: ids, rp: none, types: []/~}
+          idents: ids, rp: none, types: ~[]}
     }
 
     fn parse_value_path() -> @path {
@@ -659,7 +659,7 @@ class parser {
                 self.parse_seq_lt_gt(some(token::COMMA),
                                      {|p| p.parse_ty(false)})
             } else {
-                {node: []/~, span: path.span}
+                {node: ~[], span: path.span}
             }
         };
 
@@ -735,7 +735,7 @@ class parser {
                 let lit = @spanned(lo, hi, lit_nil);
                 ret self.mk_pexpr(lo, hi, expr_lit(lit));
             }
-            let mut es = [self.parse_expr()]/~;
+            let mut es = ~[self.parse_expr()];
             while self.token == token::COMMA {
                 self.bump(); vec::push(es, self.parse_expr());
             }
@@ -753,7 +753,7 @@ class parser {
             if self.is_keyword("mut") ||
                 is_plain_ident(self.token)
                 && self.look_ahead(1u) == token::COLON {
-                let mut fields = [self.parse_field(token::COLON)]/~;
+                let mut fields = ~[self.parse_field(token::COLON)];
                 let mut base = none;
                 while self.token != token::RBRACE {
                     // optional comma before "with"
@@ -1017,7 +1017,7 @@ class parser {
                         self.expect(token::LT);
                         self.parse_seq_to_gt(some(token::COMMA),
                                              {|p| p.parse_ty(false)})
-                    } else { []/~ };
+                    } else { ~[] };
                     e = self.mk_pexpr(lo, hi, expr_field(self.to_expr(e),
                                                          self.get_str(i),
                                                          tys));
@@ -1048,14 +1048,14 @@ class parser {
                 alt e.node {
                   expr_call(f, args, false) {
                     e = pexpr(@{node: expr_call(f,
-                                                vec::append(args, [blk]/~),
+                                                vec::append(args, ~[blk]),
                                                 true)
                                 with *self.to_expr(e)});
                   }
                   _ {
                     e = self.mk_pexpr(lo, self.last_span.hi,
                                       expr_call(self.to_expr(e),
-                                                [blk]/~, true));
+                                                ~[blk], true));
                   }
                 }
               }
@@ -1108,12 +1108,12 @@ class parser {
           token::LPAREN | token::LBRACE | token::LBRACKET {
             let ket = flip(self.token);
             tt_delim(vec::append(
-                [parse_tt_flat(self, true)]/~,
+                ~[parse_tt_flat(self, true)],
                 vec::append(
                     self.parse_seq_to_before_end(
                         ket, seq_sep_none(),
                         {|p| p.parse_token_tree()}),
-                    [parse_tt_flat(self, true)]/~)))
+                    ~[parse_tt_flat(self, true)])))
           }
           _ { parse_tt_flat(self, false) }
         };
@@ -1205,7 +1205,7 @@ class parser {
                 let m = self.parse_mutability();
                 let e = self.to_expr(self.parse_prefix_expr());
                 hi = e.span.hi;
-                // HACK: turn &[...] into [...]/&
+                // HACK: turn &[...] into a &-evec
                 ex = alt e.node {
                   expr_vec(*) if m == m_imm {
                     expr_vstore(e, vstore_slice(self.region_from_name(none)))
@@ -1221,7 +1221,7 @@ class parser {
             let m = self.parse_mutability();
             let e = self.to_expr(self.parse_prefix_expr());
             hi = e.span.hi;
-            // HACK: turn @[...] into [...]/@
+            // HACK: turn @[...] into a @-evec
             ex = alt e.node {
               expr_vec(*) if m == m_imm { expr_vstore(e, vstore_box) }
               _ { expr_unary(box(m), e) }
@@ -1232,7 +1232,7 @@ class parser {
             let m = self.parse_mutability();
             let e = self.to_expr(self.parse_prefix_expr());
             hi = e.span.hi;
-            // HACK: turn ~[...] into [...]/~
+            // HACK: turn ~[...] into a ~-evec
             ex = alt e.node {
               expr_vec(*) if m == m_imm { expr_vstore(e, vstore_uniq) }
               _ { expr_unary(uniq(m), e) }
@@ -1393,7 +1393,7 @@ class parser {
             let b_arg = vec::last(args);
             let last = self.mk_expr(b_arg.span.lo, b_arg.span.hi,
                                     ctor(b_arg));
-            @{node: expr_call(f, vec::append(vec::init(args), [last]/~), true)
+            @{node: expr_call(f, vec::append(vec::init(args), ~[last]), true)
               with *call}
           }
           _ {
@@ -1424,7 +1424,7 @@ class parser {
         else { alt_exhaustive };
         let discriminant = self.parse_expr();
         self.expect(token::LBRACE);
-        let mut arms: [arm]/~ = []/~;
+        let mut arms: ~[arm] = ~[];
         while self.token != token::RBRACE {
             let pats = self.parse_pats();
             let mut guard = none;
@@ -1473,8 +1473,8 @@ class parser {
         }
     }
 
-    fn parse_pats() -> [@pat]/~ {
-        let mut pats = []/~;
+    fn parse_pats() -> ~[@pat] {
+        let mut pats = ~[];
         loop {
             vec::push(pats, self.parse_pat());
             if self.token == token::BINOP(token::OR) { self.bump(); }
@@ -1502,7 +1502,7 @@ class parser {
           }
           token::LBRACE {
             self.bump();
-            let mut fields = []/~;
+            let mut fields = ~[];
             let mut etc = false;
             let mut first = true;
             while self.token != token::RBRACE {
@@ -1552,7 +1552,7 @@ class parser {
                 let expr = self.mk_expr(lo, hi, expr_lit(lit));
                 pat = pat_lit(expr);
             } else {
-                let mut fields = [self.parse_pat()]/~;
+                let mut fields = ~[self.parse_pat()];
                 while self.token == token::COMMA {
                     self.bump();
                     vec::push(fields, self.parse_pat());
@@ -1587,7 +1587,7 @@ class parser {
             } else {
                 let enum_path = self.parse_path_with_tps(true);
                 hi = enum_path.span.hi;
-                let mut args: [@pat]/~ = []/~;
+                let mut args: ~[@pat] = ~[];
                 let mut star_pat = false;
                 alt self.token {
                   token::LPAREN {
@@ -1643,7 +1643,7 @@ class parser {
     fn parse_let() -> @decl {
         let is_mutbl = self.eat_keyword("mut");
         let lo = self.span.lo;
-        let mut locals = [self.parse_local(is_mutbl, true)]/~;
+        let mut locals = ~[self.parse_local(is_mutbl, true)];
         while self.eat(token::COMMA) {
             vec::push(locals, self.parse_local(is_mutbl, true));
         }
@@ -1667,8 +1667,8 @@ class parser {
               span: mk_sp(lo, self.last_span.hi)};
     }
 
-    fn parse_stmt(+first_item_attrs: [attribute]/~) -> @stmt {
-        fn check_expected_item(p: parser, current_attrs: [attribute]/~) {
+    fn parse_stmt(+first_item_attrs: ~[attribute]) -> @stmt {
+        fn check_expected_item(p: parser, current_attrs: ~[attribute]) {
             // If we have attributes then we should have an item
             if vec::is_not_empty(current_attrs) {
                 p.fatal("expected item");
@@ -1684,7 +1684,7 @@ class parser {
         } else {
             let mut item_attrs;
             alt self.parse_outer_attrs_or_ext(first_item_attrs) {
-              none { item_attrs = []/~; }
+              none { item_attrs = ~[]; }
               some(left(attrs)) { item_attrs = attrs; }
               some(right(ext)) {
                 ret @spanned(lo, ext.span.hi, stmt_expr(ext, self.get_id()));
@@ -1725,14 +1725,14 @@ class parser {
     }
 
     fn parse_inner_attrs_and_block(parse_attrs: bool)
-        -> ([attribute]/~, blk) {
+        -> (~[attribute], blk) {
 
         fn maybe_parse_inner_attrs_and_next(p: parser, parse_attrs: bool) ->
-            {inner: [attribute]/~, next: [attribute]/~} {
+            {inner: ~[attribute], next: ~[attribute]} {
             if parse_attrs {
                 p.parse_inner_attrs_and_next()
             } else {
-                {inner: []/~, next: []/~}
+                {inner: ~[], next: ~[]}
             }
         }
 
@@ -1767,12 +1767,12 @@ class parser {
     // necessary, and this should take a qualifier.
     // some blocks start with "#{"...
     fn parse_block_tail(lo: uint, s: blk_check_mode) -> blk {
-        self.parse_block_tail_(lo, s, []/~)
+        self.parse_block_tail_(lo, s, ~[])
     }
 
     fn parse_block_tail_(lo: uint, s: blk_check_mode,
-                         +first_item_attrs: [attribute]/~) -> blk {
-        let mut stmts = []/~;
+                         +first_item_attrs: ~[attribute]) -> blk {
+        let mut stmts = ~[];
         let mut expr = none;
         let {attrs_remaining, view_items} =
             self.parse_view(first_item_attrs, true);
@@ -1789,7 +1789,7 @@ class parser {
               }
               _ {
                 let stmt = self.parse_stmt(initial_attrs);
-                initial_attrs = []/~;
+                initial_attrs = ~[];
                 alt stmt.node {
                   stmt_expr(e, stmt_id) { // Expression without semicolon:
                     alt self.token {
@@ -1831,7 +1831,7 @@ class parser {
     }
 
     fn parse_ty_param() -> ty_param {
-        let mut bounds = []/~;
+        let mut bounds = ~[];
         let ident = self.parse_ident();
         if self.eat(token::COLON) {
             while self.token != token::COMMA && self.token != token::GT {
@@ -1846,17 +1846,17 @@ class parser {
         ret {ident: ident, id: self.get_id(), bounds: @bounds};
     }
 
-    fn parse_ty_params() -> [ty_param]/~ {
+    fn parse_ty_params() -> ~[ty_param] {
         if self.eat(token::LT) {
             self.parse_seq_to_gt(some(token::COMMA), {|p| p.parse_ty_param()})
-        } else { []/~ }
+        } else { ~[] }
     }
 
     fn parse_fn_decl(purity: purity,
                      parse_arg_fn: fn(parser) -> arg_or_capture_item)
         -> (fn_decl, capture_clause) {
 
-        let args_or_capture_items: [arg_or_capture_item]/~ =
+        let args_or_capture_items: ~[arg_or_capture_item] =
             self.parse_unspanned_seq(
                 token::LPAREN, token::RPAREN,
                 seq_sep_trailing_disallowed(token::COMMA), parse_arg_fn);
@@ -1867,7 +1867,7 @@ class parser {
         // Use the args list to translate each bound variable
         // mentioned in a constraint to an arg index.
         // Seems weird to do this in the parser, but I'm not sure how else to.
-        let mut constrs = []/~;
+        let mut constrs = ~[];
         if self.token == token::COLON {
             self.bump();
             constrs = self.parse_constrs({|p| p.parse_ty_constr(inputs) });
@@ -1883,7 +1883,7 @@ class parser {
     fn parse_fn_block_decl() -> (fn_decl, capture_clause) {
         let inputs_captures = {
             if self.eat(token::OROR) {
-                []/~
+                ~[]
             } else {
                 self.parse_unspanned_seq(
                     token::BINOP(token::OR), token::BINOP(token::OR),
@@ -1900,11 +1900,11 @@ class parser {
               output: output,
               purity: impure_fn,
               cf: return_val,
-              constraints: []/~},
+              constraints: ~[]},
              @either::rights(inputs_captures));
     }
 
-    fn parse_fn_header() -> {ident: ident, tps: [ty_param]/~} {
+    fn parse_fn_header() -> {ident: ident, tps: ~[ty_param]} {
         let id = self.parse_value_ident();
         let ty_params = self.parse_ty_params();
         ret {ident: id, tps: ty_params};
@@ -1912,7 +1912,7 @@ class parser {
 
     fn mk_item(lo: uint, hi: uint, +ident: ident,
                +node: item_, vis: visibility,
-               +attrs: [attribute]/~) -> @item {
+               +attrs: ~[attribute]) -> @item {
         ret @{ident: ident,
               attrs: attrs,
               id: self.get_id(),
@@ -1965,9 +1965,9 @@ class parser {
     }
 
     // Parses three variants (with the region/type params always optional):
-    //    impl /&<T: copy> of to_str for [T]/~ { ... }
-    //    impl name/&<T> of to_str for [T]/~ { ... }
-    //    impl name/&<T> for [T]/~ { ... }
+    //    impl /&<T: copy> of to_str for ~[T] { ... }
+    //    impl name/&<T> of to_str for ~[T] { ... }
+    //    impl name/&<T> for ~[T] { ... }
     fn parse_item_impl() -> item_info {
         fn wrap_path(p: parser, pt: @path) -> @ty {
             @{id: p.get_id(), node: ty_path(pt, p.get_id()), span: pt.span}
@@ -1979,7 +1979,7 @@ class parser {
                 (none, self.parse_region_param(), self.parse_ty_params())
             }
             else if self.is_keyword("of") {
-                (none, rp_none, []/~)
+                (none, rp_none, ~[])
             } else {
                 let id = self.parse_ident();
                 let rp = self.parse_region_param();
@@ -1999,7 +1999,7 @@ class parser {
         };
         self.expect_keyword("for");
         let ty = self.parse_ty(false);
-        let mut meths = []/~;
+        let mut meths = ~[];
         self.expect(token::LBRACE);
         while !self.eat(token::RBRACE) {
             vec::push(meths, self.parse_method(public));
@@ -2012,7 +2012,7 @@ class parser {
     // the return type of the ctor function.
     fn ident_to_path_tys(i: ident,
                          rp: region_param,
-                         typarams: [ty_param]/~) -> @path {
+                         typarams: ~[ty_param]) -> @path {
         let s = self.last_span;
 
         // Hack.  But then, this whole function is in service of a hack.
@@ -2021,7 +2021,7 @@ class parser {
           rp_self { some(self.region_from_name(some(@"self"))) }
         };
 
-        @{span: s, global: false, idents: [i]/~,
+        @{span: s, global: false, idents: ~[i],
           rp: a_r,
           types: vec::map(typarams, {|tp|
               @{id: self.get_id(),
@@ -2035,7 +2035,7 @@ class parser {
           id: self.get_id()}
     }
 
-    fn parse_iface_ref_list() -> [@iface_ref]/~ {
+    fn parse_iface_ref_list() -> ~[@iface_ref] {
         self.parse_seq_to_before_end(
             token::LBRACE, seq_sep_trailing_disallowed(token::COMMA),
             {|p| p.parse_iface_ref()})
@@ -2046,11 +2046,11 @@ class parser {
         let rp = self.parse_region_param();
         let ty_params = self.parse_ty_params();
         let class_path = self.ident_to_path_tys(class_name, rp, ty_params);
-        let ifaces : [@iface_ref]/~ = if self.eat(token::COLON)
+        let ifaces : ~[@iface_ref] = if self.eat(token::COLON)
             { self.parse_iface_ref_list() }
-        else { []/~ };
+        else { ~[] };
         self.expect(token::LBRACE);
-        let mut ms: [@class_member]/~ = []/~;
+        let mut ms: ~[@class_member] = ~[];
         let ctor_id = self.get_id();
         let mut the_ctor : option<(fn_decl, blk, codemap::span)> = none;
         let mut the_dtor : option<(blk, codemap::span)> = none;
@@ -2135,7 +2135,7 @@ class parser {
         }
         else if self.eat_keyword("priv") {
             self.expect(token::LBRACE);
-            let mut results = []/~;
+            let mut results = ~[];
             while self.token != token::RBRACE {
                 vec::push(results, self.parse_single_class_item(private));
             }
@@ -2144,7 +2144,7 @@ class parser {
         }
         else {
             // Probably need to parse attrs
-            ret members([self.parse_single_class_item(public)]/~);
+            ret members(~[self.parse_single_class_item(public)]);
         }
     }
 
@@ -2155,11 +2155,11 @@ class parser {
     }
 
     fn parse_mod_items(term: token::token,
-                       +first_item_attrs: [attribute]/~) -> _mod {
+                       +first_item_attrs: ~[attribute]) -> _mod {
         // Shouldn't be any view items since we've already parsed an item attr
         let {attrs_remaining, view_items} =
             self.parse_view(first_item_attrs, false);
-        let mut items: [@item]/~ = []/~;
+        let mut items: ~[@item] = ~[];
         let mut first = true;
         while self.token != term {
             let mut attrs = self.parse_outer_attributes();
@@ -2206,7 +2206,7 @@ class parser {
         (id, item_mod(m), some(inner_attrs.inner))
     }
 
-    fn parse_item_foreign_fn(+attrs: [attribute]/~,
+    fn parse_item_foreign_fn(+attrs: ~[attribute],
                              purity: purity) -> @foreign_item {
         let lo = self.last_span.lo;
         let t = self.parse_fn_header();
@@ -2232,22 +2232,22 @@ class parser {
         else { self.unexpected(); }
     }
 
-    fn parse_foreign_item(+attrs: [attribute]/~) ->
+    fn parse_foreign_item(+attrs: ~[attribute]) ->
         @foreign_item {
         self.parse_item_foreign_fn(attrs, self.parse_fn_purity())
     }
 
-    fn parse_foreign_mod_items(+first_item_attrs: [attribute]/~) ->
+    fn parse_foreign_mod_items(+first_item_attrs: ~[attribute]) ->
         foreign_mod {
         // Shouldn't be any view items since we've already parsed an item attr
         let {attrs_remaining, view_items} =
             self.parse_view(first_item_attrs, false);
-        let mut items: [@foreign_item]/~ = []/~;
+        let mut items: ~[@foreign_item] = ~[];
         let mut initial_attrs = attrs_remaining;
         while self.token != token::RBRACE {
             let attrs = vec::append(initial_attrs,
                                     self.parse_outer_attributes());
-            initial_attrs = []/~;
+            initial_attrs = ~[];
             vec::push(items, self.parse_foreign_item(attrs));
         }
         ret {view_items: view_items,
@@ -2293,7 +2293,7 @@ class parser {
         let id = self.parse_ident();
         let rp = self.parse_region_param();
         let ty_params = self.parse_ty_params();
-        let mut variants: [variant]/~ = []/~;
+        let mut variants: ~[variant] = ~[];
         // Newtype syntax
         if self.token == token::EQ {
             self.check_restricted_keywords_(*id);
@@ -2303,12 +2303,12 @@ class parser {
             let variant =
                 spanned(ty.span.lo, ty.span.hi,
                         {name: id,
-                         attrs: []/~,
-                         args: [{ty: ty, id: self.get_id()}]/~,
+                         attrs: ~[],
+                         args: ~[{ty: ty, id: self.get_id()}],
                          id: self.get_id(),
                          disr_expr: none,
                          vis: public});
-            ret (id, item_enum([variant]/~, ty_params, rp), none);
+            ret (id, item_enum(~[variant], ty_params, rp), none);
         }
         self.expect(token::LBRACE);
 
@@ -2319,7 +2319,7 @@ class parser {
             let vlo = self.span.lo;
             let vis = self.parse_visibility(default_vis);
             let ident = self.parse_value_ident();
-            let mut args = []/~, disr_expr = none;
+            let mut args = ~[], disr_expr = none;
             if self.token == token::LPAREN {
                 all_nullary = false;
                 let arg_tys = self.parse_unspanned_seq(
@@ -2380,7 +2380,7 @@ class parser {
         }
     }
 
-    fn parse_item(+attrs: [attribute]/~, vis: visibility)
+    fn parse_item(+attrs: ~[attribute], vis: visibility)
         -> option<@item> {
         let lo = self.span.lo;
         let (ident, item_, extra_attrs) = if self.eat_keyword("const") {
@@ -2437,20 +2437,20 @@ class parser {
     fn parse_view_path() -> @view_path {
         let lo = self.span.lo;
         let first_ident = self.parse_ident();
-        let mut path = [first_ident]/~;
+        let mut path = ~[first_ident];
         #debug("parsed view_path: %s", *first_ident);
         alt self.token {
           token::EQ {
             // x = foo::bar
             self.bump();
-            path = [self.parse_ident()]/~;
+            path = ~[self.parse_ident()];
             while self.token == token::MOD_SEP {
                 self.bump();
                 let id = self.parse_ident();
                 vec::push(path, id);
             }
             let path = @{span: mk_sp(lo, self.span.hi), global: false,
-                         idents: path, rp: none, types: []/~};
+                         idents: path, rp: none, types: ~[]};
             ret @spanned(lo, self.span.hi,
                          view_path_simple(first_ident, path, self.get_id()));
           }
@@ -2475,7 +2475,7 @@ class parser {
                         {|p| p.parse_path_list_ident()});
                     let path = @{span: mk_sp(lo, self.span.hi),
                                  global: false, idents: path,
-                                 rp: none, types: []/~};
+                                 rp: none, types: ~[]};
                     ret @spanned(lo, self.span.hi,
                                  view_path_list(path, idents, self.get_id()));
                   }
@@ -2485,7 +2485,7 @@ class parser {
                     self.bump();
                     let path = @{span: mk_sp(lo, self.span.hi),
                                  global: false, idents: path,
-                                 rp: none, types: []/~};
+                                 rp: none, types: ~[]};
                     ret @spanned(lo, self.span.hi,
                                  view_path_glob(path, self.get_id()));
                   }
@@ -2498,13 +2498,13 @@ class parser {
         }
         let last = path[vec::len(path) - 1u];
         let path = @{span: mk_sp(lo, self.span.hi), global: false,
-                     idents: path, rp: none, types: []/~};
+                     idents: path, rp: none, types: ~[]};
         ret @spanned(lo, self.span.hi,
                      view_path_simple(last, path, self.get_id()));
     }
 
-    fn parse_view_paths() -> [@view_path]/~ {
-        let mut vp = [self.parse_view_path()]/~;
+    fn parse_view_paths() -> ~[@view_path] {
+        let mut vp = ~[self.parse_view_path()];
         while self.token == token::COMMA {
             self.bump();
             vec::push(vp, self.parse_view_path());
@@ -2521,7 +2521,7 @@ class parser {
             || self.token_is_keyword("export", tok)
     }
 
-    fn parse_view_item(+attrs: [attribute]/~) -> @view_item {
+    fn parse_view_item(+attrs: ~[attribute]) -> @view_item {
         let lo = self.span.lo, vis = self.parse_visibility(private);
         let node = if self.eat_keyword("use") {
             self.parse_use()
@@ -2535,12 +2535,12 @@ class parser {
           vis: vis, span: mk_sp(lo, self.last_span.hi)}
     }
 
-    fn parse_view(+first_item_attrs: [attribute]/~,
-                  only_imports: bool) -> {attrs_remaining: [attribute]/~,
-                                          view_items: [@view_item]/~} {
+    fn parse_view(+first_item_attrs: ~[attribute],
+                  only_imports: bool) -> {attrs_remaining: ~[attribute],
+                                          view_items: ~[@view_item]} {
         let mut attrs = vec::append(first_item_attrs,
                                     self.parse_outer_attributes());
-        let mut items = []/~;
+        let mut items = ~[];
         while if only_imports { self.is_keyword("import") }
         else { self.is_view_item() } {
             vec::push(items, self.parse_view_item(attrs));
@@ -2556,7 +2556,7 @@ class parser {
         let first_item_outer_attrs = crate_attrs.next;
         let m = self.parse_mod_items(token::EOF, first_item_outer_attrs);
         ret @spanned(lo, self.span.lo,
-                     {directives: []/~,
+                     {directives: ~[],
                       module: m,
                       attrs: crate_attrs.inner,
                       config: self.cfg});
@@ -2577,7 +2577,7 @@ class parser {
     //
     // Each directive imperatively extends its environment with 0 or more
     // items.
-    fn parse_crate_directive(first_outer_attr: [attribute]/~) ->
+    fn parse_crate_directive(first_outer_attr: ~[attribute]) ->
         crate_directive {
 
         // Collect the next attributes
@@ -2619,8 +2619,8 @@ class parser {
     }
 
     fn parse_crate_directives(term: token::token,
-                              first_outer_attr: [attribute]/~) ->
-        [@crate_directive]/~ {
+                              first_outer_attr: ~[attribute]) ->
+        ~[@crate_directive] {
 
         // This is pretty ugly. If we have an outer attribute then we can't
         // accept seeing the terminator next, so if we do see it then fail the
@@ -2629,12 +2629,12 @@ class parser {
             self.expect_keyword("mod");
         }
 
-        let mut cdirs: [@crate_directive]/~ = []/~;
+        let mut cdirs: ~[@crate_directive] = ~[];
         let mut first_outer_attr = first_outer_attr;
         while self.token != term {
             let cdir = @self.parse_crate_directive(first_outer_attr);
             vec::push(cdirs, cdir);
-            first_outer_attr = []/~;
+            first_outer_attr = ~[];
         }
         ret cdirs;
     }