Change:
<!-- Thank you for finding an Internal Compiler Error! If possible, try to provide a minimal verifiable example. You can read "Rust Bug Minimization Patterns" for how to create smaller examples. --panics when running . This seems to come from cc <!-- If you're using the stable version of the compiler, you should also check if the bug also exists in the beta or nightly versions. --: <!-- Include a backtrace in the code block by setting in your environment. E.g. . --<details<summary<strongBacktrace</strong</summary<p</p</details
what is that attribute intended to do? Enum fields are always public.
I wanted to hide the field from docs because it was not important. But I agree it's probably a bit strange.
Assigning priority as in the prioritization working group.

Discussion:
} fn print_tuple_struct_fields(w: &mut Buffer, cx: &Context<'_>, s: &[clean::Item]) { <del> for (i, ty) in s .iter() .map(|f| if let clean::StructFieldItem(ref ty) = *f.kind { ty } else { unreachable!() }) .enumerate() { </del> <ins> for (i, ty) in s.iter().enumerate() { </ins> if i > 0 { w.write_str(",&nbsp;"); } <del> write!(w, "{}", ty.print(cx)); </del> <ins> match *ty.kind { clean::StrippedItem(box clean::StructFieldItem(_)) => w.write_str("_"), clean::StructFieldItem(ref ty) => write!(w, "{}", ty.print(cx)), _ => unreachable!(), } </ins> } }

name = variant.name.as_ref().unwrap(), ); for field in fields { <del> use crate::clean::StructFieldItem; if let StructFieldItem(ref ty) = *field.kind { let id = cx.derive_id(format!( "variant.{}.field.{}", variant.name.as_ref().unwrap(), field.name.as_ref().unwrap() )); write!( w, "<span id="{id}" class="variant small-section-header"> <a href="#{id}" class="anchor field"></a> <code>{f}:&nbsp;{t}</code> </span>", id = id, f = field.name.as_ref().unwrap(), t = ty.print(cx) ); document(w, cx, field, Some(variant)); </del> <ins> match *field.kind { clean::StrippedItem(box clean::StructFieldItem(_)) => {} clean::StructFieldItem(ref ty) => { let id = cx.derive_id(format!( "variant.{}.field.{}", variant.name.as_ref().unwrap(), field.name.as_ref().unwrap() )); write!( w, "<span id="{id}" class="variant small-section-header"> <a href="#{id}" class="anchor field"></a> <code>{f}:&nbsp;{t}</code> </span>", id = id, f = field.name.as_ref().unwrap(), t = ty.print(cx) ); document(w, cx, field, Some(variant)); } _ => unreachable!(), </ins> } } w.write_str("</div></div>");

<ins> // This test ensure that #[doc(hidden)] is applied correctly in enum variant fields. // Denotes a field which should be hidden. pub struct H; // Denotes a field which should not be hidden (shown). pub struct S; // @has issue_88600/enum.FooEnum.html pub enum FooEnum { // @has - '//*[@id="variant.HiddenTupleItem"]//code' 'HiddenTupleItem(_)' // @count - '//*[@id="variant.HiddenTupleItem.field.0"]' 0 HiddenTupleItem(#[doc(hidden)] H), // @has - '//*[@id="variant.MultipleHidden"]//code' 'MultipleHidden(_, _)' // @count - '//*[@id="variant.MultipleHidden.field.0"]' 0 // @count - '//*[@id="variant.MultipleHidden.field.1"]' 0 MultipleHidden(#[doc(hidden)] H, #[doc(hidden)] H), // @has - '//*[@id="variant.MixedHiddenFirst"]//code' 'MixedHiddenFirst(_, S)' // @count - '//*[@id="variant.MixedHiddenFirst.field.0"]' 0 // @has - '//*[@id="variant.MixedHiddenFirst.field.1"]' '1: S' MixedHiddenFirst(#[doc(hidden)] H, S), // @has - '//*[@id="variant.MixedHiddenLast"]//code' 'MixedHiddenLast(S, _)' // @has - '//*[@id="variant.MixedHiddenLast.field.0"]' '0: S' // @count - '//*[@id="variant.MixedHiddenLast.field.1"]' 0 MixedHiddenLast(S, #[doc(hidden)] H), // @has - '//*[@id="variant.HiddenStruct"]//code' 'HiddenStruct' // @count - '//*[@id="variant.HiddenStruct.field.h"]' 0 // @has - '//*[@id="variant.HiddenStruct.field.s"]' 's: S' HiddenStruct { #[doc(hidden)] h: H, s: S, }, } </ins>