Skip to content

Commit 9096f3a

Browse files
committed
---
yaml --- r: 955 b: refs/heads/master c: 9769b61 h: refs/heads/master i: 953: 5147a52 951: 547aa3e v: v3
1 parent 33299f7 commit 9096f3a

File tree

6 files changed

+19
-15
lines changed

6 files changed

+19
-15
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: 98e8c2ef21f6aab3dd3d4d328a1c8baf1f074ee4
2+
refs/heads/master: 9769b612261d6000b969ce466c4033f8445d3474

trunk/src/comp/front/ast.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ type item = spanned[item_];
170170
tag item_ {
171171
item_fn(ident, _fn, vec[ty_param], def_id, ann);
172172
item_mod(ident, _mod, def_id);
173-
item_ty(ident, @ty, def_id, ann);
173+
item_ty(ident, @ty, vec[ty_param], def_id, ann);
174174
item_tag(ident, vec[variant], vec[ty_param], def_id);
175175
}
176176

trunk/src/comp/front/parser.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ impure fn parse_block(parser p) -> ast.block {
10261026
case (ast.item_mod(?i, _, _)) {
10271027
index.insert(i, u-1u);
10281028
}
1029-
case (ast.item_ty(?i, _, _, _)) {
1029+
case (ast.item_ty(?i, _, _, _, _)) {
10301030
index.insert(i, u-1u);
10311031
}
10321032
}
@@ -1112,11 +1112,13 @@ impure fn parse_item_type(parser p) -> tup(ast.ident, @ast.item) {
11121112
auto lo = p.get_span();
11131113
expect(p, token.TYPE);
11141114
auto id = parse_ident(p);
1115+
auto tps = parse_ty_params(p);
1116+
11151117
expect(p, token.EQ);
11161118
auto ty = parse_ty(p);
11171119
auto hi = p.get_span();
11181120
expect(p, token.SEMI);
1119-
auto item = ast.item_ty(id, ty, p.next_def_id(), ast.ann_none);
1121+
auto item = ast.item_ty(id, ty, tps, p.next_def_id(), ast.ann_none);
11201122
ret tup(id, @spanned(lo, hi, item));
11211123
}
11221124

trunk/src/comp/middle/fold.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,8 @@ type ast_fold[ENV] =
166166
&ast._mod m, def_id id) -> @item) fold_item_mod,
167167

168168
(fn(&ENV e, &span sp, ident ident,
169-
@ty t, def_id id, ann a) -> @item) fold_item_ty,
169+
@ty t, vec[ast.ty_param] ty_params,
170+
def_id id, ann a) -> @item) fold_item_ty,
170171

171172
(fn(&ENV e, &span sp, ident ident,
172173
vec[ast.variant] variants,
@@ -550,9 +551,9 @@ fn fold_item[ENV](&ENV env, ast_fold[ENV] fld, @item i) -> @item {
550551
ret fld.fold_item_mod(env_, i.span, ident, mm_, id);
551552
}
552553

553-
case (ast.item_ty(?ident, ?ty, ?id, ?ann)) {
554+
case (ast.item_ty(?ident, ?ty, ?params, ?id, ?ann)) {
554555
let @ast.ty ty_ = fold_ty[ENV](env_, fld, ty);
555-
ret fld.fold_item_ty(env_, i.span, ident, ty_, id, ann);
556+
ret fld.fold_item_ty(env_, i.span, ident, ty_, params, id, ann);
556557
}
557558

558559
case (ast.item_tag(?ident, ?variants, ?ty_params, ?id)) {
@@ -813,8 +814,9 @@ fn identity_fold_item_mod[ENV](&ENV e, &span sp, ident i,
813814
}
814815

815816
fn identity_fold_item_ty[ENV](&ENV e, &span sp, ident i,
816-
@ty t, def_id id, ann a) -> @item {
817-
ret @respan(sp, ast.item_ty(i, t, id, a));
817+
@ty t, vec[ast.ty_param] ty_params,
818+
def_id id, ann a) -> @item {
819+
ret @respan(sp, ast.item_ty(i, t, ty_params, id, a));
818820
}
819821

820822
fn identity_fold_item_tag[ENV](&ENV e, &span sp, ident i,
@@ -941,7 +943,7 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] {
941943

942944
fold_item_fn = bind identity_fold_item_fn[ENV](_,_,_,_,_,_,_),
943945
fold_item_mod = bind identity_fold_item_mod[ENV](_,_,_,_,_),
944-
fold_item_ty = bind identity_fold_item_ty[ENV](_,_,_,_,_,_),
946+
fold_item_ty = bind identity_fold_item_ty[ENV](_,_,_,_,_,_,_),
945947
fold_item_tag = bind identity_fold_item_tag[ENV](_,_,_,_,_,_),
946948

947949
fold_block = bind identity_fold_block[ENV](_,_,_),

trunk/src/comp/middle/resolve.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ fn lookup_name(&env e, ast.ident i) -> option.t[def] {
3535
case (ast.item_mod(_, _, ?id)) {
3636
ret some[def](ast.def_mod(id));
3737
}
38-
case (ast.item_ty(_, _, ?id, _)) {
38+
case (ast.item_ty(_, _, _, ?id, _)) {
3939
ret some[def](ast.def_ty(id));
4040
}
4141
}

trunk/src/comp/middle/typeck.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ fn collect_item_types(@ast.crate crate) -> tup(@ast.crate, @ty_table) {
326326
ret t_fn;
327327
}
328328

329-
case (ast.item_ty(?ident, ?referent_ty, ?def_id, _)) {
329+
case (ast.item_ty(?ident, ?referent_ty, _, ?def_id, _)) {
330330
if (item_to_ty.contains_key(def_id)) {
331331
// Avoid repeating work.
332332
check (item_to_ty.contains_key(def_id));
@@ -351,7 +351,7 @@ fn collect_item_types(@ast.crate crate) -> tup(@ast.crate, @ty_table) {
351351
auto id_to_ty_item = @common.new_def_hash[@ast.item]();
352352
for (@ast.item item in module.items) {
353353
alt (item.node) {
354-
case (ast.item_ty(_, _, ?def_id, _)) {
354+
case (ast.item_ty(_, _, _, ?def_id, _)) {
355355
id_to_ty_item.insert(def_id, item);
356356
}
357357
case (_) { /* empty */ }
@@ -371,10 +371,10 @@ fn collect_item_types(@ast.crate crate) -> tup(@ast.crate, @ty_table) {
371371
result = ast.item_fn(ident, fn_info, tps, def_id,
372372
ast.ann_type(t));
373373
}
374-
case (ast.item_ty(?ident, ?referent_ty, ?def_id, _)) {
374+
case (ast.item_ty(?ident, ?referent_ty, ?tps, ?def_id, _)) {
375375
auto t = trans_ty_item_to_ty(id_to_ty_item, item_to_ty, it);
376376
auto ann = ast.ann_type(t);
377-
result = ast.item_ty(ident, referent_ty, def_id, ann);
377+
result = ast.item_ty(ident, referent_ty, tps, def_id, ann);
378378
}
379379
case (ast.item_mod(_, _, _)) {
380380
result = it.node;

0 commit comments

Comments
 (0)