about summary refs log tree commit diff
path: root/src/comp/syntax/ext
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-07-05 16:23:07 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-07-06 11:09:08 -0700
commit1591955adfb54354bcdb04712e561951d371002a (patch)
tree57c62aee342bb2e0e6758351c63a2b1b8104b1da /src/comp/syntax/ext
parentb108280db10b0017f57003d959db8d18a6d36c84 (diff)
downloadrust-1591955adfb54354bcdb04712e561951d371002a.tar.gz
rust-1591955adfb54354bcdb04712e561951d371002a.zip
rustc: Make AST paths use interior vectors
Diffstat (limited to 'src/comp/syntax/ext')
-rw-r--r--src/comp/syntax/ext/base.rs5
-rw-r--r--src/comp/syntax/ext/fmt.rs11
-rw-r--r--src/comp/syntax/ext/simplext.rs6
3 files changed, 12 insertions, 10 deletions
diff --git a/src/comp/syntax/ext/base.rs b/src/comp/syntax/ext/base.rs
index a0ba306edfa..766dd9f3f28 100644
--- a/src/comp/syntax/ext/base.rs
+++ b/src/comp/syntax/ext/base.rs
@@ -1,3 +1,4 @@
+import std::ivec;
 import std::vec;
 import std::option;
 import std::map::hashmap;
@@ -71,8 +72,8 @@ fn expr_to_str(&ext_ctxt cx, @ast::expr expr, str error) -> str {
 fn expr_to_ident(&ext_ctxt cx, @ast::expr expr, str error) -> ast::ident {
     alt(expr.node) {
         case (ast::expr_path(?p)) {
-            if (vec::len(p.node.types) > 0u 
-                || vec::len(p.node.idents) != 1u) {
+            if (ivec::len(p.node.types) > 0u 
+                    || ivec::len(p.node.idents) != 1u) {
                 cx.span_fatal(expr.span, error);
             } else {
                 ret p.node.idents.(0);
diff --git a/src/comp/syntax/ext/fmt.rs b/src/comp/syntax/ext/fmt.rs
index 1ea2d694374..c7e2787d502 100644
--- a/src/comp/syntax/ext/fmt.rs
+++ b/src/comp/syntax/ext/fmt.rs
@@ -60,10 +60,9 @@ fn pieces_to_expr(&ext_ctxt cx, span sp, vec[piece] pieces,
         auto binexpr = ast::expr_binary(ast::add, lhs, rhs);
         ret @rec(id=cx.next_id(), node=binexpr, span=sp);
     }
-    fn make_path_expr(&ext_ctxt cx, span sp, vec[ast::ident] idents)
+    fn make_path_expr(&ext_ctxt cx, span sp, &ast::ident[] idents)
        -> @ast::expr {
-        let vec[@ast::ty] types = [];
-        auto path = rec(idents=idents, types=types);
+        auto path = rec(idents=idents, types=~[]);
         auto sp_path = rec(node=path, span=sp);
         auto pathexpr = ast::expr_path(sp_path);
         ret @rec(id=cx.next_id(), node=pathexpr, span=sp);
@@ -73,7 +72,7 @@ fn pieces_to_expr(&ext_ctxt cx, span sp, vec[piece] pieces,
         auto vecexpr = ast::expr_vec(exprs, ast::imm, ast::sk_rc);
         ret @rec(id=cx.next_id(), node=vecexpr, span=sp);
     }
-    fn make_call(&ext_ctxt cx, span sp, vec[ast::ident] fn_path,
+    fn make_call(&ext_ctxt cx, span sp, &ast::ident[] fn_path,
                  vec[@ast::expr] args) -> @ast::expr {
         auto pathexpr = make_path_expr(cx, sp, fn_path);
         auto callexpr = ast::expr_call(pathexpr, args);
@@ -92,11 +91,11 @@ fn pieces_to_expr(&ext_ctxt cx, span sp, vec[piece] pieces,
         auto recexpr = ast::expr_rec(astfields, option::none[@ast::expr]);
         ret @rec(id=cx.next_id(), node=recexpr, span=sp);
     }
-    fn make_path_vec(str ident) -> vec[str] {
+    fn make_path_vec(str ident) -> str[] {
         // FIXME: #fmt can't currently be used from within std
         // because we're explicitly referencing the 'std' crate here
 
-        ret ["std", "extfmt", "rt", ident];
+        ret ~["std", "extfmt", "rt", ident];
     }
     fn make_rt_path_expr(&ext_ctxt cx, span sp, str ident) ->
        @ast::expr {
diff --git a/src/comp/syntax/ext/simplext.rs b/src/comp/syntax/ext/simplext.rs
index e214524f0b7..53b37da6c27 100644
--- a/src/comp/syntax/ext/simplext.rs
+++ b/src/comp/syntax/ext/simplext.rs
@@ -1,6 +1,7 @@
 use std;
 
 import codemap::span;
+import std::ivec;
 import std::vec;
 import std::option;
 import vec::map;
@@ -50,7 +51,7 @@ fn subst_ident(&ext_ctxt cx, &vec[@ast::expr] args,
 fn subst_path(&ext_ctxt cx, &vec[@ast::expr] args, 
               @vec[ident] param_names, &path_ p, ast_fold fld) -> path_ {
     // Don't substitute into qualified names.
-    if (len(p.types) > 0u || len(p.idents) != 1u) { ret p; }
+    if (ivec::len(p.types) > 0u || ivec::len(p.idents) != 1u) { ret p; }
     alt (position(p.idents.(0), *param_names)) {
         case (some[uint](?idx)) {
             alt (args.(idx).node) {
@@ -75,7 +76,8 @@ fn subst_expr(&ext_ctxt cx, &vec[@ast::expr] args, @vec[ident] param_names,
     ret alt(e) {
         case (expr_path(?p)){
             // Don't substitute into qualified names.
-            if (len(p.node.types) > 0u || len(p.node.idents) != 1u) { e }
+            if (ivec::len(p.node.types) > 0u ||
+                    ivec::len(p.node.idents) != 1u) { e }
             alt (position(p.node.idents.(0), *param_names)) {
                 case (some[uint](?idx)) {
                     args.(idx).node