Skip to content

Commit f05cd6b

Browse files
committed
---
yaml --- r: 3608 b: refs/heads/master c: f391acb h: refs/heads/master v: v3
1 parent 392b25a commit f05cd6b

File tree

5 files changed

+20
-32
lines changed

5 files changed

+20
-32
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 09e591c12fcfef0533c113eca7dab59cd770e521
2+
refs/heads/master: f391acbd3f34c9ee066a2e9767222061221a1042

trunk/src/comp/metadata/tydecode.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,8 @@ fn parse_ty(@pstate st, str_def sd) -> ty::t {
253253
assert (next(st) as char == '[');
254254
auto def = parse_def(st, sd);
255255
auto inner = parse_ty(st, sd);
256-
let vec[ty::t] params = [];
257-
while (peek(st) as char != ']') { params += [parse_ty(st, sd)]; }
256+
let ty::t[] params = ~[];
257+
while (peek(st) as char != ']') { params += ~[parse_ty(st, sd)]; }
258258
st.pos = st.pos + 1u;
259259
ret ty::mk_res(st.tcx, def, inner, params);
260260
}

trunk/src/comp/middle/trans.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2145,13 +2145,9 @@ fn make_drop_glue(&@block_ctxt cx, ValueRef v0, &ty::t t) {
21452145
}
21462146

21472147
fn trans_res_drop(@block_ctxt cx, ValueRef rs, &ast::def_id did,
2148-
ty::t inner_t, &vec[ty::t] tps) -> result {
2149-
// FIXME: Remove this vec->ivec conversion.
2150-
auto tps_ivec = ~[];
2151-
for (ty::t tp in tps) { tps_ivec += ~[tp]; }
2152-
2148+
ty::t inner_t, &ty::t[] tps) -> result {
21532149
auto ccx = cx.fcx.lcx.ccx;
2154-
auto inner_t_s = ty::substitute_type_params(ccx.tcx, tps_ivec, inner_t);
2150+
auto inner_t_s = ty::substitute_type_params(ccx.tcx, tps, inner_t);
21552151
auto tup_ty = ty::mk_imm_tup(ccx.tcx, ~[ty::mk_int(ccx.tcx), inner_t_s]);
21562152
auto drop_cx = new_sub_block_ctxt(cx, "drop res");
21572153
auto next_cx = new_sub_block_ctxt(cx, "next");

trunk/src/comp/middle/ty.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@ tag sty {
269269
ty_rec(field[]);
270270
ty_fn(ast::proto, arg[], t, controlflow, vec[@constr_def]);
271271
ty_native_fn(ast::native_abi, arg[], t);
272-
ty_obj(vec[method]);
273-
ty_res(def_id, t, vec[t]);
272+
ty_obj(method[]);
273+
ty_res(def_id, t, t[]);
274274
ty_var(int); // type variable
275275
ty_param(uint); // fn/tag type param
276276
ty_type;
@@ -608,7 +608,7 @@ fn mk_obj(&ctxt cx, &vec[method] meths) -> t {
608608
ret gen_ty(cx, ty_obj(meths));
609609
}
610610

611-
fn mk_res(&ctxt cx, &ast::def_id did, &t inner, &vec[t] tps) -> t {
611+
fn mk_res(&ctxt cx, &ast::def_id did, &t inner, &t[] tps) -> t {
612612
ret gen_ty(cx, ty_res(did, inner, tps));
613613
}
614614

@@ -817,8 +817,8 @@ fn fold_ty(&ctxt cx, fold_mode fld, t ty_0) -> t {
817817
ty = copy_cname(cx, mk_obj(cx, new_methods), ty);
818818
}
819819
case (ty_res(?did, ?subty, ?tps)) {
820-
auto new_tps = [];
821-
for (t tp in tps) { new_tps += [fold_ty(cx, fld, tp)]; }
820+
auto new_tps = ~[];
821+
for (t tp in tps) { new_tps += ~[fold_ty(cx, fld, tp)]; }
822822
ty = copy_cname(cx, mk_res(cx, did, fold_ty(cx, fld, subty),
823823
new_tps), ty);
824824
}
@@ -2475,13 +2475,13 @@ mod unify {
24752475
alt (result) {
24762476
case (ures_ok(?res_inner)) {
24772477
auto i = 0u;
2478-
auto res_tps = [];
2478+
auto res_tps = ~[];
24792479
for (t ex_tp in ex_tps) {
24802480
auto result =
24812481
unify_step(cx, ex_tp, act_tps.(i));
24822482
alt (result) {
24832483
case (ures_ok(?rty)) {
2484-
vec::push(res_tps, rty);
2484+
res_tps += ~[rty];
24852485
}
24862486
case (_) { ret result; }
24872487
}

trunk/src/comp/middle/typeck.rs

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -472,11 +472,11 @@ mod write {
472472
mod collect {
473473
type ctxt = rec(ty::ctxt tcx);
474474

475-
fn mk_ty_params(&@ctxt cx, uint n) -> vec[ty::t] {
476-
auto tps = [];
475+
fn mk_ty_params(&@ctxt cx, uint n) -> ty::t[] {
476+
auto tps = ~[];
477477
auto i = 0u;
478478
while (i < n) {
479-
tps += [ty::mk_param(cx.tcx, i)];
479+
tps += ~[ty::mk_param(cx.tcx, i)];
480480
i += 1u;
481481
}
482482
ret tps;
@@ -648,12 +648,8 @@ mod collect {
648648

649649
auto ty_param_count = vec::len[ast::ty_param](tps);
650650

651-
let vec[ty::t] subtys = mk_ty_params(cx, ty_param_count);
652-
// FIXME: Remove this vec->ivec conversion.
653-
auto tps_ivec = ~[];
654-
for (ty::t tp in subtys) { tps_ivec += ~[tp]; }
655-
656-
auto t = ty::mk_tag(cx.tcx, local_def(it.id), tps_ivec);
651+
let ty::t[] subtys = mk_ty_params(cx, ty_param_count);
652+
auto t = ty::mk_tag(cx.tcx, local_def(it.id), subtys);
657653
auto tpt = tup(ty_param_count, t);
658654
cx.tcx.tcache.insert(local_def(it.id), tpt);
659655
ret tpt;
@@ -690,18 +686,14 @@ mod collect {
690686
// Create a set of parameter types shared among all the variants.
691687

692688
auto ty_param_count = vec::len[ast::ty_param](ty_params);
693-
let vec[ty::t] ty_param_tys = mk_ty_params(cx, ty_param_count);
689+
let ty::t[] ty_param_tys = mk_ty_params(cx, ty_param_count);
694690
for (ast::variant variant in variants) {
695691
// Nullary tag constructors get turned into constants; n-ary tag
696692
// constructors get turned into functions.
697693

698-
// FIXME: Remove this vec->ivec conversion.
699-
auto tps_ivec = ~[];
700-
for (ty::t tp in ty_param_tys) { tps_ivec += ~[tp]; }
701-
702694
auto result_ty;
703695
if (vec::len[ast::variant_arg](variant.node.args) == 0u) {
704-
result_ty = ty::mk_tag(cx.tcx, tag_id, tps_ivec);
696+
result_ty = ty::mk_tag(cx.tcx, tag_id, ty_param_tys);
705697
} else {
706698
// As above, tell ast_ty_to_ty() that trans_ty_item_to_ty()
707699
// should be called to resolve named types.
@@ -712,7 +704,7 @@ mod collect {
712704
auto arg_ty = ast_ty_to_ty(cx.tcx, f, va.ty);
713705
args += ~[rec(mode=ty::mo_alias(false), ty=arg_ty)];
714706
}
715-
auto tag_t = ty::mk_tag(cx.tcx, tag_id, tps_ivec);
707+
auto tag_t = ty::mk_tag(cx.tcx, tag_id, ty_param_tys);
716708
// FIXME: this will be different for constrained types
717709
result_ty = ty::mk_fn(cx.tcx, ast::proto_fn, args, tag_t,
718710
ast::return, []);

0 commit comments

Comments
 (0)