about summary refs log tree commit diff
path: root/src/comp/metadata/decoder.rs
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2012-02-10 10:28:35 -0800
committerNiko Matsakis <niko@alum.mit.edu>2012-02-10 20:48:28 -0800
commit0263039ca0350eb67ce11e985bd7e698de48ca0f (patch)
tree97349888cf68f0d3b487ec15f50dcca558e96026 /src/comp/metadata/decoder.rs
parentfdddf8f9e1d6738d42989a6d8a735dd58127e199 (diff)
downloadrust-0263039ca0350eb67ce11e985bd7e698de48ca0f.tar.gz
rust-0263039ca0350eb67ce11e985bd7e698de48ca0f.zip
use absolute names when pretty-printing types
Diffstat (limited to 'src/comp/metadata/decoder.rs')
-rw-r--r--src/comp/metadata/decoder.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/comp/metadata/decoder.rs b/src/comp/metadata/decoder.rs
index ccc0e3bfa2a..cd007e22fc4 100644
--- a/src/comp/metadata/decoder.rs
+++ b/src/comp/metadata/decoder.rs
@@ -112,10 +112,11 @@ fn doc_type(doc: ebml::doc, tcx: ty::ctxt, cdata: cmd) -> ty::t {
     })
 }
 
-fn item_type(item: ebml::doc, tcx: ty::ctxt, cdata: cmd) -> ty::t {
+fn item_type(item_id: ast::def_id, item: ebml::doc,
+             tcx: ty::ctxt, cdata: cmd) -> ty::t {
     let t = doc_type(item, tcx, cdata);
     if family_names_type(item_family(item)) {
-        ty::mk_named(tcx, t, item_name(item))
+        ty::mk_with_id(tcx, t, item_id)
     } else { t }
 }
 
@@ -240,7 +241,7 @@ fn lookup_def(cnum: ast::crate_num, data: @[u8], did_: ast::def_id) ->
 fn get_type(cdata: cmd, id: ast::node_id, tcx: ty::ctxt)
     -> ty::ty_param_bounds_and_ty {
     let item = lookup_item(id, cdata.data);
-    let t = item_type(item, tcx, cdata);
+    let t = item_type({crate: cdata.cnum, node: id}, item, tcx, cdata);
     let tp_bounds = if family_has_type_params(item_family(item)) {
         item_ty_param_bounds(item, tcx, cdata)
     } else { @[] };
@@ -274,7 +275,8 @@ fn get_enum_variants(cdata: cmd, id: ast::node_id, tcx: ty::ctxt)
     let disr_val = 0;
     for did: ast::def_id in variant_ids {
         let item = find_item(did.node, items);
-        let ctor_ty = item_type(item, tcx, cdata);
+        let ctor_ty = item_type({crate: cdata.cnum, node: id}, item,
+                                tcx, cdata);
         let name = item_name(item);
         let arg_tys: [ty::t] = [];
         alt ty::get(ctor_ty).struct {