save-analysis: emit the right kind of variant

This commit is contained in:
Nick Cameron 2016-01-22 18:53:23 +13:00
parent 5c1d5fcd87
commit cd2287e2bc
2 changed files with 23 additions and 10 deletions

View File

@ -510,14 +510,28 @@ impl <'l, 'tcx> DumpCsvVisitor<'l, 'tcx> {
qualname.push_str(name); qualname.push_str(name);
let val = self.span.snippet(variant.span); let val = self.span.snippet(variant.span);
self.fmt.struct_variant_str(variant.span, match variant.node.data {
self.span.span_for_first_ident(variant.span), ast::VariantData::Struct(..) => {
variant.node.data.id(), self.fmt.struct_variant_str(variant.span,
variant.node.data.id(), self.span.span_for_first_ident(variant.span),
&qualname, variant.node.data.id(),
&enum_data.qualname, &qualname,
&val, &enum_data.qualname,
enum_data.id); &val,
enum_data.scope);
}
_ => {
self.fmt.tuple_variant_str(variant.span,
self.span.span_for_first_ident(variant.span),
variant.node.data.id(),
name,
&qualname,
&enum_data.qualname,
&val,
enum_data.scope);
}
}
for field in variant.node.data.fields() { for field in variant.node.data.fields() {
self.process_struct_field_def(field, variant.node.data.id()); self.process_struct_field_def(field, variant.node.data.id());

View File

@ -433,14 +433,13 @@ impl<'a, 'tcx: 'a> FmtStrs<'a, 'tcx> {
span: Span, span: Span,
sub_span: Option<Span>, sub_span: Option<Span>,
id: NodeId, id: NodeId,
ctor_id: NodeId,
name: &str, name: &str,
typ: &str, typ: &str,
val: &str, val: &str,
scope_id: NodeId) { scope_id: NodeId) {
let id = self.normalize_node_id(id); let id = self.normalize_node_id(id);
let ctor_id = id;
let scope_id = self.normalize_node_id(scope_id); let scope_id = self.normalize_node_id(scope_id);
let ctor_id = self.normalize_node_id(ctor_id);
self.check_and_record(VariantStruct, self.check_and_record(VariantStruct,
span, span,
sub_span, sub_span,