Skip to content

Commit 567a45c

Browse files
committed
rustc: Add def ids to variants
1 parent 25b973d commit 567a45c

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

src/comp/front/ast.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ tag def {
3030
def_const(def_id);
3131
def_arg(def_id);
3232
def_local(def_id);
33+
def_variant(def_id);
3334
def_ty(def_id);
3435
def_ty_arg(def_id);
3536
}
@@ -173,7 +174,7 @@ type _fn = rec(vec[arg] inputs,
173174
type _mod = rec(vec[@item] items,
174175
hashmap[ident,uint] index);
175176

176-
type variant = rec(str name, vec[@ty] args);
177+
type variant = rec(str name, vec[@ty] args, def_id id);
177178

178179
type item = spanned[item_];
179180
tag item_ {

src/comp/front/parser.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1260,7 +1260,8 @@ impure fn parse_item_tag(parser p) -> tup(ast.ident, @ast.item) {
12601260

12611261
expect(p, token.SEMI);
12621262

1263-
variants += vec(rec(name=name, args=args));
1263+
auto id = p.next_def_id();
1264+
variants += vec(rec(name=name, args=args, id=id));
12641265
}
12651266
case (token.RBRACE) { /* empty */ }
12661267
case (_) {

src/comp/middle/fold.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@ fn fold_item[ENV](&ENV env, ast_fold[ENV] fld, @item i) -> @item {
594594
for (@ast.ty t in v.args) {
595595
new_args += vec(fold_ty[ENV](env_, fld, t));
596596
}
597-
new_variants += rec(name=v.name, args=new_args);
597+
new_variants += rec(name=v.name, args=new_args, id=v.id);
598598
}
599599
ret fld.fold_item_tag(env_, i.span, ident, new_variants,
600600
ty_params, id);

0 commit comments

Comments
 (0)