diff options
| author | Graydon Hoare <[email protected]> | 2011-04-01 18:53:08 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-04-01 18:53:08 -0700 |
| commit | 4f90c88b4d395b03d6ad96316307b905be1be84a (patch) | |
| tree | 49362cbcbf98cbd182f00976d8d22462be9a63ad /src/comp | |
| parent | Encode ty_native ebml node for native types so typechecker has something to w... (diff) | |
| download | rust-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.rs | 6 |
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); |