Skip to content

Commit 4f8901b

Browse files
committed
---
yaml --- r: 3638 b: refs/heads/master c: 13d920c h: refs/heads/master v: v3
1 parent aa0ee5e commit 4f8901b

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: ede35f4c433cc3d9f085191c940b75588f368b69
2+
refs/heads/master: 13d920c10d239c1df422c009a260b6b05fed29b1

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
@@ -474,11 +474,11 @@ mod write {
474474
mod collect {
475475
type ctxt = rec(ty::ctxt tcx);
476476

477-
fn mk_ty_params(&@ctxt cx, uint n) -> vec[ty::t] {
478-
auto tps = [];
477+
fn mk_ty_params(&@ctxt cx, uint n) -> ty::t[] {
478+
auto tps = ~[];
479479
auto i = 0u;
480480
while (i < n) {
481-
tps += [ty::mk_param(cx.tcx, i)];
481+
tps += ~[ty::mk_param(cx.tcx, i)];
482482
i += 1u;
483483
}
484484
ret tps;
@@ -650,12 +650,8 @@ mod collect {
650650

651651
auto ty_param_count = vec::len[ast::ty_param](tps);
652652

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

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

700-
// FIXME: Remove this vec->ivec conversion.
701-
auto tps_ivec = ~[];
702-
for (ty::t tp in ty_param_tys) { tps_ivec += ~[tp]; }
703-
704696
auto result_ty;
705697
if (vec::len[ast::variant_arg](variant.node.args) == 0u) {
706-
result_ty = ty::mk_tag(cx.tcx, tag_id, tps_ivec);
698+
result_ty = ty::mk_tag(cx.tcx, tag_id, ty_param_tys);
707699
} else {
708700
// As above, tell ast_ty_to_ty() that trans_ty_item_to_ty()
709701
// should be called to resolve named types.
@@ -714,7 +706,7 @@ mod collect {
714706
auto arg_ty = ast_ty_to_ty(cx.tcx, f, va.ty);
715707
args += ~[rec(mode=ty::mo_alias(false), ty=arg_ty)];
716708
}
717-
auto tag_t = ty::mk_tag(cx.tcx, tag_id, tps_ivec);
709+
auto tag_t = ty::mk_tag(cx.tcx, tag_id, ty_param_tys);
718710
// FIXME: this will be different for constrained types
719711
result_ty = ty::mk_fn(cx.tcx, ast::proto_fn, args, tag_t,
720712
ast::return, []);

0 commit comments

Comments
 (0)