about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2013-01-13 10:48:09 -0800
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2013-01-14 18:14:16 -0800
commitbea67bde21d36df40c55b02cd8d8b28c0ec864b6 (patch)
tree4970407fc9c5b4662e315e9fe66281cfa6a93c44 /src/libsyntax
parent1be4bfb8ccfd6a91fe63cc2808f3c5e9177d52dd (diff)
downloadrust-bea67bde21d36df40c55b02cd8d8b28c0ec864b6.tar.gz
rust-bea67bde21d36df40c55b02cd8d8b28c0ec864b6.zip
Change ast::path into a struct.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ast.rs12
-rw-r--r--src/libsyntax/ast_util.rs7
-rw-r--r--src/libsyntax/ext/auto_encode.rs36
-rw-r--r--src/libsyntax/ext/build.rs21
-rw-r--r--src/libsyntax/ext/concat_idents.rs8
-rw-r--r--src/libsyntax/ext/deriving.rs3
-rw-r--r--src/libsyntax/ext/pipes/ast_builder.rs28
-rw-r--r--src/libsyntax/fold.rs9
-rw-r--r--src/libsyntax/parse/parser.rs69
9 files changed, 128 insertions, 65 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs
index 050ec25d16c..f5fbb11655b 100644
--- a/src/libsyntax/ast.rs
+++ b/src/libsyntax/ast.rs
@@ -79,11 +79,13 @@ type fn_ident = Option<ident>;
 
 #[auto_encode]
 #[auto_decode]
-type path = {span: span,
-             global: bool,
-             idents: ~[ident],
-             rp: Option<@region>,
-             types: ~[@Ty]};
+struct path {
+    span: span,
+    global: bool,
+    idents: ~[ident],
+    rp: Option<@region>,
+    types: ~[@Ty],
+}
 
 type crate_num = int;
 
diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs
index 898c89ff2c8..d2012637b02 100644
--- a/src/libsyntax/ast_util.rs
+++ b/src/libsyntax/ast_util.rs
@@ -294,8 +294,11 @@ fn default_block(+stmts1: ~[@stmt], expr1: Option<@expr>, id1: node_id) ->
 }
 
 fn ident_to_path(s: span, +i: ident) -> @path {
-    @{span: s, global: false, idents: ~[i],
-      rp: None, types: ~[]}
+    @ast::path { span: s,
+                 global: false,
+                 idents: ~[i],
+                 rp: None,
+                 types: ~[] }
 }
 
 fn ident_to_pat(id: node_id, s: span, +i: ident) -> @pat {
diff --git a/src/libsyntax/ext/auto_encode.rs b/src/libsyntax/ext/auto_encode.rs
index 4afd2e1f7f8..bc28e836802 100644
--- a/src/libsyntax/ext/auto_encode.rs
+++ b/src/libsyntax/ext/auto_encode.rs
@@ -264,21 +264,45 @@ priv impl ext_ctxt {
     }
 
     fn path(span: span, strs: ~[ast::ident]) -> @ast::path {
-        @{span: span, global: false, idents: strs, rp: None, types: ~[]}
+        @ast::path {
+            span: span,
+            global: false,
+            idents: strs,
+            rp: None,
+            types: ~[]
+        }
     }
 
     fn path_global(span: span, strs: ~[ast::ident]) -> @ast::path {
-        @{span: span, global: true, idents: strs, rp: None, types: ~[]}
+        @ast::path {
+            span: span,
+            global: true,
+            idents: strs,
+            rp: None,
+            types: ~[]
+        }
     }
 
     fn path_tps(span: span, strs: ~[ast::ident],
                 tps: ~[@ast::Ty]) -> @ast::path {
-        @{span: span, global: false, idents: strs, rp: None, types: tps}
+        @ast::path {
+            span: span,
+            global: false,
+            idents: strs,
+            rp: None,
+            types: tps
+        }
     }
 
     fn path_tps_global(span: span, strs: ~[ast::ident],
                        tps: ~[@ast::Ty]) -> @ast::path {
-        @{span: span, global: true, idents: strs, rp: None, types: tps}
+        @ast::path {
+            span: span,
+            global: true,
+            idents: strs,
+            rp: None,
+            types: tps
+        }
     }
 
     fn ty_path(span: span, strs: ~[ast::ident],
@@ -289,11 +313,9 @@ priv impl ext_ctxt {
     }
 
     fn binder_pat(span: span, nm: ast::ident) -> @ast::pat {
-        let path = @{span: span, global: false, idents: ~[nm],
-                     rp: None, types: ~[]};
         @{id: self.next_id(),
           node: ast::pat_ident(ast::bind_by_ref(ast::m_imm),
-                               path,
+                               self.path(span, ~[nm]),
                                None),
           span: span}
     }
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs
index 288ef1b273e..a50952f75e7 100644
--- a/src/libsyntax/ext/build.rs
+++ b/src/libsyntax/ext/build.rs
@@ -53,20 +53,29 @@ fn mk_unary(cx: ext_ctxt, sp: span, op: ast::unop, e: @ast::expr)
     mk_expr(cx, sp, ast::expr_unary(op, e))
 }
 fn mk_raw_path(sp: span, idents: ~[ast::ident]) -> @ast::path {
-    let p : @ast::path = @{span: sp, global: false, idents: idents,
-                           rp: None, types: ~[]};
+    let p = @ast::path { span: sp,
+                         global: false,
+                         idents: idents,
+                         rp: None,
+                         types: ~[] };
     return p;
 }
 fn mk_raw_path_(sp: span,
                 idents: ~[ast::ident],
                 +types: ~[@ast::Ty])
              -> @ast::path {
-    @{ span: sp, global: false, idents: idents, rp: None, types: move types }
+    @ast::path { span: sp,
+                 global: false,
+                 idents: idents,
+                 rp: None,
+                 types: move types }
 }
 fn mk_raw_path_global(sp: span, idents: ~[ast::ident]) -> @ast::path {
-    let p : @ast::path = @{span: sp, global: true, idents: idents,
-                           rp: None, types: ~[]};
-    return p;
+    @ast::path { span: sp,
+                 global: true,
+                 idents: idents,
+                 rp: None,
+                 types: ~[] }
 }
 fn mk_path(cx: ext_ctxt, sp: span, idents: ~[ast::ident]) ->
     @ast::expr {
diff --git a/src/libsyntax/ext/concat_idents.rs b/src/libsyntax/ext/concat_idents.rs
index d847cfee053..32e77afab93 100644
--- a/src/libsyntax/ext/concat_idents.rs
+++ b/src/libsyntax/ext/concat_idents.rs
@@ -36,9 +36,11 @@ fn expand_syntax_ext(cx: ext_ctxt, sp: span, tts: ~[ast::token_tree])
 
     let e = @{id: cx.next_id(),
               callee_id: cx.next_id(),
-              node: ast::expr_path(@{span: sp, global: false,
-                                     idents: ~[res],
-                                     rp: None, types: ~[]}),
+              node: ast::expr_path(@ast::path { span: sp,
+                                                global: false,
+                                                idents: ~[res],
+                                                rp: None,
+                                                types: ~[] }),
               span: sp};
     mr_expr(e)
 }
diff --git a/src/libsyntax/ext/deriving.rs b/src/libsyntax/ext/deriving.rs
index afce1edf158..392b4068880 100644
--- a/src/libsyntax/ext/deriving.rs
+++ b/src/libsyntax/ext/deriving.rs
@@ -13,6 +13,7 @@
 
 use core::prelude::*;
 
+use ast;
 use ast::{TraitTyParamBound, Ty, and, bind_by_ref, binop, deref, enum_def};
 use ast::{enum_variant_kind, expr, expr_match, ident, item, item_};
 use ast::{item_enum, item_impl, item_struct, m_imm, meta_item, method};
@@ -218,7 +219,7 @@ fn create_derived_impl(cx: ext_ctxt,
     let impl_ty_params = dvec::unwrap(move impl_ty_params);
 
     // Create the reference to the trait.
-    let trait_path = {
+    let trait_path = ast::path {
         span: span,
         global: true,
         idents: trait_path.map(|x| *x),
diff --git a/src/libsyntax/ext/pipes/ast_builder.rs b/src/libsyntax/ext/pipes/ast_builder.rs
index 3e265de04a3..1b32ccc43d8 100644
--- a/src/libsyntax/ext/pipes/ast_builder.rs
+++ b/src/libsyntax/ext/pipes/ast_builder.rs
@@ -34,19 +34,19 @@ mod syntax {
 }
 
 fn path(ids: ~[ident], span: span) -> @ast::path {
-    @{span: span,
-      global: false,
-      idents: ids,
-      rp: None,
-      types: ~[]}
+    @ast::path { span: span,
+                 global: false,
+                 idents: ids,
+                 rp: None,
+                 types: ~[] }
 }
 
 fn path_global(ids: ~[ident], span: span) -> @ast::path {
-    @{span: span,
-      global: true,
-      idents: ids,
-      rp: None,
-      types: ~[]}
+    @ast::path { span: span,
+                 global: true,
+                 idents: ids,
+                 rp: None,
+                 types: ~[] }
 }
 
 trait append_types {
@@ -56,13 +56,13 @@ trait append_types {
 
 impl @ast::path: append_types {
     fn add_ty(ty: @ast::Ty) -> @ast::path {
-        @{types: vec::append_one(self.types, ty),
-          .. *self}
+        @ast::path { types: vec::append_one(self.types, ty),
+                     .. *self}
     }
 
     fn add_tys(+tys: ~[@ast::Ty]) -> @ast::path {
-        @{types: vec::append(self.types, tys),
-          .. *self}
+        @ast::path { types: vec::append(self.types, tys),
+                     .. *self}
     }
 }
 
diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs
index bca2336bc8c..0cd4dc7d0ad 100644
--- a/src/libsyntax/fold.rs
+++ b/src/libsyntax/fold.rs
@@ -614,10 +614,11 @@ fn noop_fold_ident(&&i: ident, _fld: ast_fold) -> ident {
 }
 
 fn noop_fold_path(&&p: path, fld: ast_fold) -> path {
-    return {span: fld.new_span(p.span), global: p.global,
-         idents: vec::map(p.idents, |x| fld.fold_ident(*x)),
-         rp: p.rp,
-         types: vec::map(p.types, |x| fld.fold_ty(*x))};
+    ast::path { span: fld.new_span(p.span),
+                global: p.global,
+                idents: p.idents.map(|x| fld.fold_ident(*x)),
+                rp: p.rp,
+                types: p.types.map(|x| fld.fold_ty(*x)) }
 }
 
 fn noop_fold_local(l: local_, fld: ast_fold) -> local_ {
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 6974ac508aa..3ab5e6c862e 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -802,8 +802,11 @@ impl Parser {
                 break;
             }
         }
-        @{span: mk_sp(lo, self.last_span.hi), global: global,
-          idents: ids, rp: None, types: ~[]}
+        @ast::path { span: mk_sp(lo, self.last_span.hi),
+                     global: global,
+                     idents: ids,
+                     rp: None,
+                     types: ~[] }
     }
 
     fn parse_value_path() -> @path {
@@ -849,9 +852,10 @@ impl Parser {
             }
         };
 
-        return @{span: mk_sp(lo, tps.span.hi),
-              rp: rp,
-              types: tps.node,.. *path};
+        @ast::path { span: mk_sp(lo, tps.span.hi),
+                     rp: rp,
+                     types: tps.node,
+                     .. *path }
     }
 
     fn parse_mutability() -> mutability {
@@ -2730,18 +2734,27 @@ impl Parser {
                          typarams: ~[ty_param]) -> @path {
         let s = self.last_span;
 
-        @{span: s, global: false, idents: ~[i],
-          rp: None,
-          types: vec::map(typarams, |tp| {
-              @{id: self.get_id(),
-                node: ty_path(ident_to_path(s, tp.ident), self.get_id()),
-                span: s}})
+        @ast::path {
+             span: s,
+             global: false,
+             idents: ~[i],
+             rp: None,
+             types: do typarams.map |tp| {
+                @{
+                    id: self.get_id(),
+                    node: ty_path(ident_to_path(s, tp.ident), self.get_id()),
+                    span: s
+                }
+            }
          }
     }
 
     fn ident_to_path(i: ident) -> @path {
-        @{span: self.last_span, global: false, idents: ~[i],
-          rp: None, types: ~[]}
+        @ast::path { span: self.last_span,
+                     global: false,
+                     idents: ~[i],
+                     rp: None,
+                     types: ~[] }
     }
 
     fn parse_trait_ref() -> @trait_ref {
@@ -3661,8 +3674,11 @@ impl Parser {
                 let id = self.parse_ident();
                 path.push(id);
             }
-            let path = @{span: mk_sp(lo, self.span.hi), global: false,
-                         idents: path, rp: None, types: ~[]};
+            let path = @ast::path { span: mk_sp(lo, self.span.hi),
+                                    global: false,
+                                    idents: path,
+                                    rp: None,
+                                    types: ~[] };
             return @spanned(lo, self.span.hi,
                          view_path_simple(first_ident, path, namespace,
                                           self.get_id()));
@@ -3686,9 +3702,11 @@ impl Parser {
                         token::LBRACE, token::RBRACE,
                         seq_sep_trailing_allowed(token::COMMA),
                         |p| p.parse_path_list_ident());
-                    let path = @{span: mk_sp(lo, self.span.hi),
-                                 global: false, idents: path,
-                                 rp: None, types: ~[]};
+                    let path = @ast::path { span: mk_sp(lo, self.span.hi),
+                                            global: false,
+                                            idents: path,
+                                            rp: None,
+                                            types: ~[] };
                     return @spanned(lo, self.span.hi,
                                  view_path_list(path, idents, self.get_id()));
                   }
@@ -3696,9 +3714,11 @@ impl Parser {
                   // foo::bar::*
                   token::BINOP(token::STAR) => {
                     self.bump();
-                    let path = @{span: mk_sp(lo, self.span.hi),
-                                 global: false, idents: path,
-                                 rp: None, types: ~[]};
+                    let path = @ast::path { span: mk_sp(lo, self.span.hi),
+                                            global: false,
+                                            idents: path,
+                                            rp: None,
+                                            types: ~[] };
                     return @spanned(lo, self.span.hi,
                                  view_path_glob(path, self.get_id()));
                   }
@@ -3710,8 +3730,11 @@ impl Parser {
           _ => ()
         }
         let last = path[vec::len(path) - 1u];
-        let path = @{span: mk_sp(lo, self.span.hi), global: false,
-                     idents: path, rp: None, types: ~[]};
+        let path = @ast::path { span: mk_sp(lo, self.span.hi),
+                                global: false,
+                                idents: path,
+                                rp: None,
+                                types: ~[] };
         return @spanned(lo, self.span.hi,
                      view_path_simple(last, path, namespace, self.get_id()));
     }