From c4a5ac2a77baa577c50f689ee36a9d7a069557bd Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 15 Aug 2022 14:41:06 +0200 Subject: [PATCH 1/2] Handle correctly stripped enum variant fields --- src/librustdoc/json/conversions.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs index 5f3793ead42ba..1fedb0144d1d0 100644 --- a/src/librustdoc/json/conversions.rs +++ b/src/librustdoc/json/conversions.rs @@ -662,12 +662,10 @@ impl FromWithTcx for Variant { Tuple(fields) => Variant::Tuple( fields .into_iter() - .map(|f| { - if let clean::StructFieldItem(ty) = *f.kind { - ty.into_tcx(tcx) - } else { - unreachable!() - } + .filter_map(|f| match *f.kind { + clean::StructFieldItem(ty) => Some(ty.into_tcx(tcx)), + clean::StrippedItem(_) => None, + _ => unreachable!(), }) .collect(), ), From 36758a2444a9c71e845f9d9838a68a15b473d95e Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 15 Aug 2022 14:41:23 +0200 Subject: [PATCH 2/2] Add regression test for stripped enum variant fields --- src/test/rustdoc-json/enum_variant_hidden.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/test/rustdoc-json/enum_variant_hidden.rs diff --git a/src/test/rustdoc-json/enum_variant_hidden.rs b/src/test/rustdoc-json/enum_variant_hidden.rs new file mode 100644 index 0000000000000..96c96a975d31a --- /dev/null +++ b/src/test/rustdoc-json/enum_variant_hidden.rs @@ -0,0 +1,13 @@ +// Regression test for . + +#![no_core] +#![feature(no_core)] + +// @has enum_variant_hidden.json "$.index[*][?(@.name=='ParseError')]" +// @has - "$.index[*][?(@.name=='UnexpectedEndTag')]" +// @is - "$.index[*][?(@.name=='UnexpectedEndTag')].inner.variant_kind" '"tuple"' +// @is - "$.index[*][?(@.name=='UnexpectedEndTag')].inner.variant_inner" [] + +pub enum ParseError { + UnexpectedEndTag(#[doc(hidden)] u32), +}