Skip to content

Commit

Permalink
save-analysis: only emit public fields in value of a struct if the co…
Browse files Browse the repository at this point in the history
…nfig permits
  • Loading branch information
nrc committed Aug 2, 2017
1 parent 640cfc8 commit 4e6c1dd
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions src/librustc_save_analysis/dump_visitor.rs
Expand Up @@ -560,14 +560,20 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> DumpVisitor<'l, 'tcx, 'll, O> {
let (value, fields) =
if let ast::ItemKind::Struct(ast::VariantData::Struct(ref fields, _), _) = item.node
{
let include_priv_fields = !self.save_ctxt.config.pub_only;
let fields_str = fields.iter()
.enumerate()
.map(|(i, f)| f.ident.map(|i| i.to_string())
.unwrap_or(i.to_string()))
.filter_map(|(i, f)| {
if include_priv_fields || f.vis == ast::Visibility::Public {
f.ident.map(|i| i.to_string()).or_else(|| Some(i.to_string()))
} else {
None
}
})
.collect::<Vec<_>>()
.join(", ");
(format!("{} {{ {} }}", name, fields_str),
fields.iter().map(|f| ::id_from_node_id(f.id, &self.save_ctxt)).collect())
let value = format!("{} {{ {} }}", name, fields_str);
(value, fields.iter().map(|f| ::id_from_node_id(f.id, &self.save_ctxt)).collect())
} else {
(String::new(), vec![])
};
Expand Down

0 comments on commit 4e6c1dd

Please sign in to comment.