Add explanations for why we use Variant::Struct instead of Variant::Tuple for tuple structs in enums
This commit is contained in:
parent
fbf78e1f9c
commit
c4aa73525b
1 changed files with 6 additions and 0 deletions
|
@ -1730,6 +1730,12 @@ impl Clean<Variant> for hir::VariantData<'_> {
|
|||
fn clean(&self, cx: &mut DocContext<'_>) -> Variant {
|
||||
match self {
|
||||
hir::VariantData::Struct(..) => Variant::Struct(self.clean(cx)),
|
||||
// Important note here: `Variant::Tuple` is used on tuple structs which are not in an
|
||||
// enum (so where converting from `ty::VariantDef`). In case we are in an enum, the kind
|
||||
// is provided by the `Variant` wrapper directly, and since we need the fields' name
|
||||
// (even for a tuple struct variant!), it's simpler to just store it as a
|
||||
// `Variant::Struct` instead of a `Variant::Tuple` (otherwise it would force us to make
|
||||
// a lot of changes when rendering them to generate the name as well).
|
||||
hir::VariantData::Tuple(..) => Variant::Struct(self.clean(cx)),
|
||||
hir::VariantData::Unit(..) => Variant::CLike,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue