Skip to content

Commit 55258de

Browse files
authored
Rollup merge of #99950 - GuillaumeGomez:rm-clean-impls, r=Dylan-DPC
Remove more Clean trait implementations This time it even allowed to remove a function. Follow-up of #99638. r? `@notriddle`
2 parents 656cd3a + c407ef0 commit 55258de

File tree

2 files changed

+30
-38
lines changed

2 files changed

+30
-38
lines changed

src/librustdoc/clean/inline.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ use rustc_span::symbol::{kw, sym, Symbol};
1717

1818
use crate::clean::{
1919
self, clean_fn_decl_from_did_and_sig, clean_middle_field, clean_middle_ty, clean_ty,
20-
clean_ty_generics, clean_visibility, utils, Attributes, AttributesExt, Clean, ImplKind, ItemId,
21-
Type, Visibility,
20+
clean_ty_generics, clean_variant_def, clean_visibility, utils, Attributes, AttributesExt,
21+
Clean, ImplKind, ItemId, Type, Visibility,
2222
};
2323
use crate::core::DocContext;
2424
use crate::formats::item_type::ItemType;
@@ -236,7 +236,7 @@ fn build_enum(cx: &mut DocContext<'_>, did: DefId) -> clean::Enum {
236236

237237
clean::Enum {
238238
generics: clean_ty_generics(cx, cx.tcx.generics_of(did), predicates),
239-
variants: cx.tcx.adt_def(did).variants().iter().map(|v| v.clean(cx)).collect(),
239+
variants: cx.tcx.adt_def(did).variants().iter().map(|v| clean_variant_def(v, cx)).collect(),
240240
}
241241
}
242242

src/librustdoc/clean/mod.rs

+27-35
Original file line numberDiff line numberDiff line change
@@ -1824,44 +1824,36 @@ pub(crate) fn clean_visibility(vis: ty::Visibility) -> Visibility {
18241824
}
18251825
}
18261826

1827+
pub(crate) fn clean_variant_def<'tcx>(variant: &ty::VariantDef, cx: &mut DocContext<'tcx>) -> Item {
1828+
let kind = match variant.ctor_kind {
1829+
CtorKind::Const => Variant::CLike,
1830+
CtorKind::Fn => Variant::Tuple(
1831+
variant.fields.iter().map(|field| clean_middle_field(field, cx)).collect(),
1832+
),
1833+
CtorKind::Fictive => Variant::Struct(VariantStruct {
1834+
struct_type: CtorKind::Fictive,
1835+
fields: variant.fields.iter().map(|field| clean_middle_field(field, cx)).collect(),
1836+
}),
1837+
};
1838+
let what_rustc_thinks =
1839+
Item::from_def_id_and_parts(variant.def_id, Some(variant.name), VariantItem(kind), cx);
1840+
// don't show `pub` for variants, which always inherit visibility
1841+
Item { visibility: Inherited, ..what_rustc_thinks }
1842+
}
1843+
18271844
fn clean_variant_data<'tcx>(
18281845
variant: &hir::VariantData<'tcx>,
18291846
cx: &mut DocContext<'tcx>,
1830-
) -> VariantStruct {
1831-
VariantStruct {
1832-
struct_type: CtorKind::from_hir(variant),
1833-
fields: variant.fields().iter().map(|x| clean_field(x, cx)).collect(),
1834-
}
1835-
}
1836-
1837-
impl<'tcx> Clean<'tcx, Item> for ty::VariantDef {
1838-
fn clean(&self, cx: &mut DocContext<'tcx>) -> Item {
1839-
let kind = match self.ctor_kind {
1840-
CtorKind::Const => Variant::CLike,
1841-
CtorKind::Fn => Variant::Tuple(
1842-
self.fields.iter().map(|field| clean_middle_field(field, cx)).collect(),
1843-
),
1844-
CtorKind::Fictive => Variant::Struct(VariantStruct {
1845-
struct_type: CtorKind::Fictive,
1846-
fields: self.fields.iter().map(|field| clean_middle_field(field, cx)).collect(),
1847-
}),
1848-
};
1849-
let what_rustc_thinks =
1850-
Item::from_def_id_and_parts(self.def_id, Some(self.name), VariantItem(kind), cx);
1851-
// don't show `pub` for variants, which always inherit visibility
1852-
Item { visibility: Inherited, ..what_rustc_thinks }
1853-
}
1854-
}
1855-
1856-
impl<'tcx> Clean<'tcx, Variant> for hir::VariantData<'tcx> {
1857-
fn clean(&self, cx: &mut DocContext<'tcx>) -> Variant {
1858-
match self {
1859-
hir::VariantData::Struct(..) => Variant::Struct(clean_variant_data(self, cx)),
1860-
hir::VariantData::Tuple(..) => {
1861-
Variant::Tuple(self.fields().iter().map(|x| clean_field(x, cx)).collect())
1862-
}
1863-
hir::VariantData::Unit(..) => Variant::CLike,
1847+
) -> Variant {
1848+
match variant {
1849+
hir::VariantData::Struct(..) => Variant::Struct(VariantStruct {
1850+
struct_type: CtorKind::from_hir(variant),
1851+
fields: variant.fields().iter().map(|x| clean_field(x, cx)).collect(),
1852+
}),
1853+
hir::VariantData::Tuple(..) => {
1854+
Variant::Tuple(variant.fields().iter().map(|x| clean_field(x, cx)).collect())
18641855
}
1856+
hir::VariantData::Unit(..) => Variant::CLike,
18651857
}
18661858
}
18671859

@@ -2009,7 +2001,7 @@ fn clean_maybe_renamed_item<'tcx>(
20092001

20102002
impl<'tcx> Clean<'tcx, Item> for hir::Variant<'tcx> {
20112003
fn clean(&self, cx: &mut DocContext<'tcx>) -> Item {
2012-
let kind = VariantItem(self.data.clean(cx));
2004+
let kind = VariantItem(clean_variant_data(&self.data, cx));
20132005
let what_rustc_thinks =
20142006
Item::from_hir_id_and_parts(self.id, Some(self.ident.name), kind, cx);
20152007
// don't show `pub` for variants, which are always public

0 commit comments

Comments
 (0)