about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-08-15 20:11:40 +0200
committerGitHub <noreply@github.com>2022-08-15 20:11:40 +0200
commitfba30041f6d892cdd93d650d96d8f42ab0602d19 (patch)
tree645416d9098fc4119c71c7a30a6aae630cf792ca
parent5319d247c8045c2a225d20d055944f1cd6f1059f (diff)
parent36758a2444a9c71e845f9d9838a68a15b473d95e (diff)
downloadrust-fba30041f6d892cdd93d650d96d8f42ab0602d19.tar.gz
rust-fba30041f6d892cdd93d650d96d8f42ab0602d19.zip
Rollup merge of #100582 - GuillaumeGomez:rustdoc-json-stripped-enum-variant, r=notriddle
[rustdoc] Fix handling of stripped enum variant in JSON output format

Fixes https://github.com/rust-lang/rust/issues/100529.

cc ``@aDotInTheVoid`` ``@Enselic``
r? ``@notriddle``
-rw-r--r--src/librustdoc/json/conversions.rs10
-rw-r--r--src/test/rustdoc-json/enum_variant_hidden.rs13
2 files changed, 17 insertions, 6 deletions
diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs
index 5f3793ead42..1fedb0144d1 100644
--- a/src/librustdoc/json/conversions.rs
+++ b/src/librustdoc/json/conversions.rs
@@ -662,12 +662,10 @@ impl FromWithTcx<clean::Variant> 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(),
             ),
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 00000000000..96c96a975d3
--- /dev/null
+++ b/src/test/rustdoc-json/enum_variant_hidden.rs
@@ -0,0 +1,13 @@
+// Regression test for <https://github.com/rust-lang/rust/issues/100529>.
+
+#![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),
+}