Skip to content

Commit 4be04c1

Browse files
committed
---
yaml --- r: 22604 b: refs/heads/master c: 1528256 h: refs/heads/master v: v3
1 parent 6e46ced commit 4be04c1

File tree

3 files changed

+38
-27
lines changed

3 files changed

+38
-27
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: c936ae515bdcebd184309c709540b512fc6f7c59
2+
refs/heads/master: 1528256fdc26199dd58b390e42e2d0dc53b9703d
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
55
refs/heads/try: ffbe0e0e00374358b789b0037bcb3a577cd218be

trunk/src/rustc/metadata/decoder.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,8 @@ fn get_impls_for_mod(cdata: cmd,
600600
do ebml::tagged_docs(mod_item, tag_mod_impl) |doc| {
601601
let did = ebml::with_doc_data(doc, |d| parse_def_id(d));
602602
let local_did = translate_def_id(cdata, did);
603+
#debug("(get impls for mod) getting did %? for '%?'",
604+
local_did, name);
603605
// The impl may be defined in a different crate. Ask the caller
604606
// to give us the metadata
605607
let impl_cdata = get_cdata(local_did.crate);

trunk/src/rustc/metadata/encoder.rs

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -396,32 +396,34 @@ fn encode_info_for_mod(ecx: @encode_ctxt, ebml_w: ebml::writer, md: _mod,
396396
let impls = ecx.impl_map(id);
397397
for impls.each |i| {
398398
let (ident, did) = i;
399-
#debug("(encoding info for module) ... encoding impl %s (%?), \
399+
#debug("(encoding info for module) ... encoding impl %s (%?/%?), \
400400
exported? %?",
401-
*ident, did, ast_util::is_exported(ident, md));
402-
if ast_util::is_exported(ident, md) {
403-
ebml_w.start_tag(tag_mod_impl);
404-
alt ecx.tcx.items.find(did.node) {
405-
some(ast_map::node_item(it@@{node: cl@item_class(*),_},_)) {
406-
/* If did stands for a trait
407-
ref, we need to map it to its parent class */
408-
ebml_w.wr_str(def_to_str(local_def(it.id)));
409-
}
410-
some(ast_map::node_item(@{node: item_impl(_,
411-
some(ifce),_,_),_},_)) {
412-
ebml_w.wr_str(def_to_str(did));
413-
}
414-
some(_) {
415-
ebml_w.wr_str(def_to_str(did));
416-
}
417-
none {
418-
// Must be a re-export, then!
419-
// ...or an iface ref
420-
ebml_w.wr_str(def_to_str(did));
421-
}
422-
};
423-
ebml_w.end_tag();
424-
} // if
401+
*ident,
402+
did,
403+
ast_map::node_id_to_str(ecx.tcx.items, did.node),
404+
ast_util::is_exported(ident, md));
405+
406+
ebml_w.start_tag(tag_mod_impl);
407+
alt ecx.tcx.items.find(did.node) {
408+
some(ast_map::node_item(it@@{node: cl@item_class(*),_},_)) {
409+
/* If did stands for a trait
410+
ref, we need to map it to its parent class */
411+
ebml_w.wr_str(def_to_str(local_def(it.id)));
412+
}
413+
some(ast_map::node_item(@{node: item_impl(_,
414+
some(ifce),_,_),_},_)) {
415+
ebml_w.wr_str(def_to_str(did));
416+
}
417+
some(_) {
418+
ebml_w.wr_str(def_to_str(did));
419+
}
420+
none {
421+
// Must be a re-export, then!
422+
// ...or an iface ref
423+
ebml_w.wr_str(def_to_str(did));
424+
}
425+
};
426+
ebml_w.end_tag();
425427
} // for
426428

427429
encode_path(ebml_w, path, ast_map::path_mod(name));
@@ -552,7 +554,14 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: ebml::writer, item: @item,
552554

553555
let tcx = ecx.tcx;
554556
let must_write =
555-
alt item.node { item_enum(_, _) { true } _ { false } };
557+
alt item.node {
558+
item_enum(_, _) | item_impl(*) | item_trait(*) | item_class(*) {
559+
true
560+
}
561+
_ {
562+
false
563+
}
564+
};
556565
if !must_write && !reachable(ecx, item.id) { ret; }
557566

558567
fn add_to_index_(item: @item, ebml_w: ebml::writer,

0 commit comments

Comments
 (0)