about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-07-04 20:47:20 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-07-06 11:09:07 -0700
commit4c384304e9c37590a2e65d4803b7abef375490a4 (patch)
tree101421eaf57663bd60bf9c2b6bdd67a67069933e
parent5703bd1760366422019e1b6d3f432e46bae4dd1b (diff)
downloadrust-4c384304e9c37590a2e65d4803b7abef375490a4.tar.gz
rust-4c384304e9c37590a2e65d4803b7abef375490a4.zip
rustc: Convert bind_params_in_type() to use interior vectors
-rw-r--r--src/comp/middle/ty.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs
index 56291c111a1..3fcb592e109 100644
--- a/src/comp/middle/ty.rs
+++ b/src/comp/middle/ty.rs
@@ -2761,13 +2761,16 @@ fn type_err_to_str(&ty::type_err err) -> str {
 // Converts type parameters in a type to type variables and returns the
 // resulting type along with a list of type variable IDs.
 fn bind_params_in_type(&span sp, &ctxt cx, fn() -> int  next_ty_var, t typ,
-                       uint ty_param_count) -> tup(vec[int], t) {
-    let vec[int] param_var_ids = [];
+                       uint ty_param_count) -> tup(int[], t) {
+    let @mutable int[] param_var_ids = @mutable ~[];
     auto i = 0u;
-    while (i < ty_param_count) { param_var_ids += [next_ty_var()]; i += 1u; }
-    fn binder(span sp, ctxt cx, vec[int] param_var_ids,
+    while (i < ty_param_count) {
+        *param_var_ids += ~[next_ty_var()];
+        i += 1u;
+    }
+    fn binder(span sp, ctxt cx, @mutable int[] param_var_ids,
               fn() -> int next_ty_var, uint index) -> t {
-        if (index < vec::len(param_var_ids)) {
+        if (index < ivec::len(*param_var_ids)) {
             ret mk_var(cx, param_var_ids.(index));
         }
         else {
@@ -2777,7 +2780,7 @@ fn bind_params_in_type(&span sp, &ctxt cx, fn() -> int  next_ty_var, t typ,
     auto new_typ =
         fold_ty(cx, fm_param(bind binder(sp, cx, param_var_ids,
                                          next_ty_var, _)), typ);
-    ret tup(param_var_ids, new_typ);
+    ret tup(*param_var_ids, new_typ);
 }