aboutsummaryrefslogtreecommitdiff
path: root/src/comp
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-04-01 18:53:08 -0700
committerGraydon Hoare <[email protected]>2011-04-01 18:53:08 -0700
commit4f90c88b4d395b03d6ad96316307b905be1be84a (patch)
tree49362cbcbf98cbd182f00976d8d22462be9a63ad /src/comp
parentEncode ty_native ebml node for native types so typechecker has something to w... (diff)
downloadrust-4f90c88b4d395b03d6ad96316307b905be1be84a.tar.xz
rust-4f90c88b4d395b03d6ad96316307b905be1be84a.zip
Write typarams for variants. Typecheck gets as far as ty.rs now.
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/metadata.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/comp/middle/metadata.rs b/src/comp/middle/metadata.rs
index 9216786d..c3b78662 100644
--- a/src/comp/middle/metadata.rs
+++ b/src/comp/middle/metadata.rs
@@ -360,7 +360,8 @@ fn encode_obj_type_id(&ebml.writer ebml_w, &ast.def_id id) {
fn encode_tag_variant_info(@trans.crate_ctxt cx, &ebml.writer ebml_w,
ast.def_id did, vec[ast.variant] variants,
- &mutable vec[tup(int, uint)] index) {
+ &mutable vec[tup(int, uint)] index,
+ vec[ast.ty_param] ty_params) {
for (ast.variant variant in variants) {
index += vec(tup(variant.node.id._1, ebml_w.writer.tell()));
@@ -373,6 +374,7 @@ fn encode_tag_variant_info(@trans.crate_ctxt cx, &ebml.writer ebml_w,
encode_symbol(cx, ebml_w, variant.node.id);
}
encode_discriminant(cx, ebml_w, variant.node.id);
+ encode_type_params(ebml_w, ty_params);
ebml.end_tag(ebml_w);
}
}
@@ -428,7 +430,7 @@ fn encode_info_for_item(@trans.crate_ctxt cx, &ebml.writer ebml_w,
}
ebml.end_tag(ebml_w);
- encode_tag_variant_info(cx, ebml_w, did, variants, index);
+ encode_tag_variant_info(cx, ebml_w, did, variants, index, tps);
}
case (ast.item_obj(?id, _, ?tps, ?odid, ?ann)) {
ebml.start_tag(ebml_w, tag_items_data_item);