rust/tests/rustdoc
bors be581d9f82 Auto merge of #116142 - GuillaumeGomez:enum-variant-display, r=fmease
[rustdoc] Show enum discrimant if it is a C-like variant

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

We currently display values for associated constant items in traits:

![image](https://github.com/rust-lang/rust/assets/3050060/03e566ec-c670-47b4-8ca2-b982baa7a0f4)

And we also display constant values like [here](file:///home/imperio/rust/rust/build/x86_64-unknown-linux-gnu/doc/std/f32/consts/constant.E.html).

I think that for coherency, we should display values of C-like enum variants.

With this change, it looks like this:

![image](https://github.com/rust-lang/rust/assets/3050060/b53fbbe0-bdb1-4289-8537-f2dd4988e9ac)

As for the display of the constant value itself, I used what we already have to keep coherency.

We display the C-like variants value in the following scenario:
 1. It is a C-like variant with a value set => all the time
 2. It is a C-like variant without a value set: All other variants are C-like variants and at least one them has its value set.

Here is the result in code:

```rust
// Ax and Bx value will be displayed.
enum A {
    Ax = 12,
    Bx,
}

// Ax and Bx value will not be displayed
enum B {
    Ax,
    Bx,
}

// Bx value will not be displayed
enum C {
    Ax(u32),
    Bx,
}

// Bx value will not be displayed, Cx value will be displayed.
#[repr(u32)]
enum D {
    Ax(u32),
    Bx,
    Cx = 12,
}
```

r? `@notriddle`
2023-10-09 13:18:47 +00:00
..
auxiliary Auto merge of #116142 - GuillaumeGomez:enum-variant-display, r=fmease 2023-10-09 13:18:47 +00:00
const-generics Render missing fields in tuple struct/enum as /* private fields */ 2023-09-06 11:16:05 +02:00
deref
duplicate_impls
generic-associated-types
inline_cross Add URL to test case issues 2023-10-04 13:04:45 -07:00
inline_local
intra-doc
intra-doc-crate
notable-trait
primitive
src-links
synthetic_auto
test_option_check
alias-reexport2.rs
alias-reexport.rs
all.rs
anchor-id-duplicate-method-name-25001.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
anchor-id-trait-method-15169.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
anchor-id-trait-tymethod-28478.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
anchors.no_const_anchor2.html
anchors.no_const_anchor.html
anchors.no_method_anchor.html
anchors.no_trait_method_anchor.html
anchors.no_tymethod_anchor.html
anchors.no_type_anchor2.html
anchors.no_type_anchor.html
anchors.rs
anonymous-lifetime.rs
anonymous-reexport.rs
array-links.link_box_generic.html
array-links.link_box_u32.html
array-links.link_slice_generic.html
array-links.link_slice_u32.html
array-links.rs
asm-foreign2.rs
asm-foreign.rs
assoc-consts-version.rs
assoc-consts.rs
assoc-item-cast.rs
assoc-type-bindings-20646.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
assoc-types.rs
associated-consts.rs
async-fn-opaque-item.rs
async-fn.rs
async-move-doctest.rs
async-trait-sig.rs
async-trait.rs
attribute-rendering.rs
attributes.rs
auto_aliases.rs
auto-impl-for-trait.rs
auto-impl-primitive.rs
auto-trait-not-send.rs
auto-traits.rs
bad-codeblock-syntax.rs
blanket-reexport-item.rs
bounds-in-multiple-parts.rs
cap-lints.rs
cfg_doc_reexport.rs
cfg-doctest.rs
check-source-code-urls-to-def-std.rs
check-source-code-urls-to-def.rs
check-styled-link.rs
check.rs
codeblock-title.rs
comment-in-doctest.rs
compiler-derive-proc-macro.rs
const-display.rs
const-doc.rs
const-fn.rs
const-intrinsic.rs
const-underscore.rs
const-value-display.rs
const.rs
constructor-imports.rs
crate-version-escape.rs
crate-version.rs
cross-crate-hidden-assoc-trait-items.rs
cross-crate-hidden-impl-parameter.rs
cross-crate-links.rs
cross-crate-primitive-doc.rs
custom_code_classes.rs Implement new eBNF for codeblock attributes 2023-09-15 21:32:28 +02:00
decl_macro_priv.rs
decl_macro.rs
decl-line-wrapping-empty-arg-list.decl.html
decl-line-wrapping-empty-arg-list.rs
decl-trailing-whitespace.declaration.html
decl-trailing-whitespace.rs
deduplicate-glob-import-impl-21474.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
deduplicate-trait-impl-22025.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
deep-structures.rs
default-impl.rs
default-theme.rs
default-trait-method-link.rs
default-trait-method.rs
deprecated-future-staged-api.rs
deprecated-future.rs
deprecated-impls.rs
deprecated.rs
deref-methods-19190-foreign-type.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
deref-methods-19190-inline.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
deref-methods-19190.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
description_default.rs
description.rs
display-hidden-items.rs
doc_auto_cfg_nested_impl.rs
doc-assoc-item.rs
doc-auto-cfg.rs
doc-cfg-hide.rs
doc-cfg-implicit-gate.rs
doc-cfg-implicit.rs
doc-cfg-simplification.rs
doc-cfg-target-feature.rs
doc-cfg-traits.rs
doc-cfg.rs
doc-hidden-method-13698.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
doc-proc-macro.rs
doc-test-attr-18199.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
doctest-hide-empty-line-23106.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
doctest-manual-crate-name.rs
doctest-markdown-inline-parse-23744.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
doctest-multi-line-string-literal-25944.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
document-hidden-items-15347.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
document-item-with-associated-const-in-where-clause.rs
double-hyphen-to-dash.rs
double-quote-escape.rs
duplicate-cfg.rs
duplicate-flags.rs
duplicated_impl.rs
early-unindent.rs
edition-doctest.rs
edition-flag.rs
elided-lifetime.rs
empty-doc-comment.rs
empty-impl-block-private-with-doc.rs
empty-impl-block-private.rs
empty-impl-block.rs
empty-impls.rs
empty-mod-private.rs
empty-mod-public.rs
empty-section.rs
ensure-src-link.rs
enum-headings.rs
enum-variant-value.rs Add more complex test cases for enum discriminant display 2023-10-09 14:33:04 +02:00
extern-default-method.no_href_on_anchor.html
extern-default-method.rs
extern-fn-22038.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
extern-html-root-url-precedence.rs
extern-html-root-url.rs
extern-impl-trait.rs
extern-impl.rs
extern-links.rs
extern-method.rs
external-cross.rs
external-doc.rs
external-macro-src.rs
feature-gate-doc_auto_cfg.rs
ffi.rs
files-creation-hidden.rs
files-creation-private.rs
fn-bound.rs
fn-pointer-arg-name.rs
fn-sidebar.rs
fn-type.rs
footnote-in-summary.rs
force-target-feature.rs
foreigntype-reexport.rs
foreigntype.rs
generic_const_exprs.rs
generic-const-items.rs
generic-impl.rs
glob-shadowing-const.rs
glob-shadowing.rs
hidden-impls.rs
hidden-line.rs
hidden-methods.rs
hidden-private.rs
hidden-trait-methods-with-document-hidden-items.rs
hidden-trait-methods.rs
hidden-trait-struct-impls.rs
hide-complex-unevaluated-const-arguments.rs
hide-complex-unevaluated-consts.rs
hide-unstable-trait.rs
higher-ranked-trait-bounds.rs
highlight-invalid-rust-12834.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
html-no-source.rs
ice-reexport-crate-root-28927.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
ice-type-error-19181.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
impl-alias-substituted.rs
impl-assoc-type-21092.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
impl-box.rs
impl-disambiguation.rs
impl-everywhere.rs
impl-in-const-block.rs
impl-parts-crosscrate.rs
impl-parts.rs
impl-ref-20175.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
impl-trait-alias.rs
implementor-stable-version.rs
impossible-default.rs
include_str_cut.rs
index-page.rs
infinite-redirection-16265-1.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
infinite-redirection-16265-2.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
infinite-redirection.rs
inherent-projections.rs
inline-assoc-type-20727-bindings.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
inline-assoc-type-20727-bounds-deref.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
inline-assoc-type-20727-bounds-index.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
inline-assoc-type-20727-bounds.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
inline-default-methods.rs
inline-private-with-intermediate-doc-hidden.rs
internal.rs
invalid.crate.name.rs
issue-29449.rs
issue-29503.rs
issue-29584.rs
issue-30109.rs
issue-30252.rs
issue-30366.rs
issue-31808.rs
issue-31899.rs
issue-32077-type-alias-impls.rs Add test for the presence of "Aliased type" title in the sidebar 2023-09-11 14:17:39 +02:00
issue-32374.rs
issue-32395.rs
issue-32556.rs
issue-32890.rs
issue-33069.rs
issue-33178-1.rs
issue-33178.rs
issue-33302.rs
issue-33592.rs
issue-34025.rs
issue-34274.rs
issue-34423.rs
issue-34473.rs
issue-34928.rs
issue-35169-2.rs
issue-35169.rs
issue-35488.rs
issue-36031.rs
issue-38129.rs
issue-38219.rs
issue-40936.rs
issue-41783.codeblock.html
issue-41783.rs
issue-42760.rs
issue-43153.rs
issue-43701.rs
issue-43869.rs
issue-43893.rs
issue-45584.rs
issue-46271.rs
issue-46377.rs
issue-46380-2.rs
issue-46506-pub-reexport-of-pub-reexport.rs
issue-46727.rs
issue-46766.rs
issue-46767.rs
issue-46976.rs
issue-47038.rs
issue-47197-blank-line-in-doc-block.rs
issue-47639.rs
issue-48377.rs
issue-48414.rs
issue-50159.rs
issue-51236.rs
issue-52873.rs
issue-53689.rs
issue-53812.rs
issue-54478-demo-allocator.rs
issue-54705.rs
issue-55001.rs
issue-55321.rs
issue-55364.rs
issue-56701.rs
issue-56822.rs
issue-57180.rs
issue-60482.rs
issue-60522-duplicated-glob-reexport.rs
issue-60726.rs
issue-61592.rs
issue-67851-both.rs
issue-67851-hidden.rs
issue-67851-neither.rs
issue-67851-private.rs
issue-72340.rs
issue-73061-cross-crate-opaque-assoc-type.rs
issue-74083.rs
issue-75588.rs
issue-76501.rs
issue-78673.rs
issue-78701.rs
issue-79201.rs
issue-80233-normalize-auto-trait.rs
issue-81141-private-reexport-in-public-api-2.rs
issue-81141-private-reexport-in-public-api-generics.rs
issue-81141-private-reexport-in-public-api-hidden.rs
issue-81141-private-reexport-in-public-api-private.rs
issue-81141-private-reexport-in-public-api.rs
issue-82465-asref-for-and-of-local.rs
issue-83375-multiple-mods-w-same-name-doc-inline-last-item.rs
issue-83375-multiple-mods-w-same-name-doc-inline.rs
issue-85454.rs
issue-86620.rs
issue-88600.rs Render missing fields in tuple struct/enum as /* private fields */ 2023-09-06 11:16:05 +02:00
issue-89309-heading-levels.rs
issue-89852.rs
issue-94183-blanket-impl-reexported-trait.rs
issue-95633.rs
issue-95873.rs
issue-96381.rs
issue-98697.rs
issue-99221-multiple-macro-rules-w-same-name-submodule.rs
issue-99221-multiple-macro-rules-w-same-name.rs
issue-99221-multiple-structs-w-same-name.rs
issue-99734-multiple-foreigns-w-same-name.rs
issue-99734-multiple-mods-w-same-name.rs
issue-100204-inline-impl-through-glob-import.rs
issue-100241.rs
issue-100620.rs
issue-101743-bold-tag.rs
issue-102154.rs
issue-105735-overlapping-reexport-2.rs
issue-105735-overlapping-reexport.rs
issue-105952.rs
issue-106142.rs
issue-107350.rs
issue-107995.rs
issue-108231.rs
issue-108281.rs
issue-108679-reexport-of-reexport.rs
issue-108925.rs
issue-108931-anonymous-reexport.rs
issue-109258-missing-private-inlining.rs
issue-109449-doc-hidden-reexports.rs
issue-109695-crate-doc-hidden.rs
issue-110422-inner-private.rs
issue-110629-private-type-cycle.rs
issue-111064-reexport-trait-from-hidden-2.rs
issue-111064-reexport-trait-from-hidden.rs
issue-111249-file-creation.rs
issue-112515-impl-ty-alias.rs
issue-113982-doc_auto_cfg-reexport-foreign.rs
item-desc-list-at-start.item-table.html
item-desc-list-at-start.rs
jump-to-def-doc-links.rs
keyword.rs
legacy-const-generic.rs
lifetime-name.rs
line-breaks.rs
link-assoc-const.rs
link-title-escape.rs
local-reexport-doc.rs
logo-class-default.rs
logo-class.rs
macro_pub_in_module.rs
macro_rules-matchers.rs
macro-doc-comment-23812.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
macro-document-private-duplicate.rs
macro-document-private.rs
macro-generated-macro.macro_linebreak_pre.html
macro-generated-macro.macro_morestuff_pre.html
macro-generated-macro.rs
macro-higher-kinded-function.rs
macro-ice-16019.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
macro-in-async-block.rs
macro-in-closure.rs
macro-indirect-use.rs
macro-private-not-documented.rs
macros.rs
manual_impl.rs
markdown-table-escape-pipe-27862.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
masked.rs
method-link-foreign-trait-impl-17476.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
method-list.rs
mixing-doc-comments-and-attrs.rs
mixing-doc-comments-and-attrs.S1_top-doc.html
mixing-doc-comments-and-attrs.S2_top-doc.html
mixing-doc-comments-and-attrs.S3_top-doc.html
mod-stackoverflow.rs
module-impls.rs
multiple-import-levels.rs
must_implement_one_of.rs
mut-params.rs
namespaces.rs
negative-impl-sidebar.rs
negative-impl.rs
nested-items-issue-111415.rs
nested-modules.rs
no_std-primitive.rs
no-compiler-reexport.rs
no-run-still-checks-lints.rs
no-stack-overflow-25295.rs
no-unit-struct-field.rs
non_lifetime_binders.rs
normalize-assoc-item.rs
not-wf-ambiguous-normalization.rs
nul-error.rs
playground-arg.rs
playground-empty.rs
playground-none.rs
playground-syntax-error.rs
playground.rs
primitive-link.rs
primitive-raw-pointer-dox-15318-3.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
primitive-raw-pointer-link-15318.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
primitive-raw-pointer-link-no-inlined-15318-2.rs rustdoc: add URLs for test issues 2023-09-27 17:22:18 -07:00
primitive-reexport.rs
primitive-reference.rs
primitive-slice-auto-trait.rs
primitive-tuple-auto-trait.rs
primitive-tuple-variadic.rs
primitive-unit-auto-trait.rs
private-fields-tuple-struct.rs Add regression test for private fields in tuple struct 2023-09-06 13:26:56 +02:00
private-type-alias.rs
private-use.rs
proc-macro.rs
process-termination.rs
pub-extern-crate.rs
pub-method.rs
pub-use-extern-macros.rs
range-arg-pattern.rs
raw-ident-eliminate-r-hashtag.rs
read-more-unneeded.rs
recursion1.rs
recursion2.rs
recursion3.rs
redirect-const.rs
redirect-map-empty.rs
redirect-map.rs
redirect-rename.rs
redirect.rs
reexport-attr-merge.rs
reexport-check.rs
reexport-dep-foreign-fn.rs
reexport-doc-hidden-inside-private.rs
reexport-doc-hidden.rs
reexport-doc.rs
reexport-hidden-macro.rs
reexport-macro.rs
reexport-of-doc-hidden.rs
reexport-stability-tags-deprecated-and-portability.rs
reexport-stability-tags-unstable-and-portability.rs
reexports-of-same-name.rs
reexports-priv.rs
reexports.rs
remove-duplicates.rs
remove-url-from-headings.rs
return-impl-trait.rs
rfc-2632-const-trait-impl.rs fix rustdoc tests 2023-09-20 03:02:14 +00:00
rustc-incoherent-impls.rs
rustc-macro-crate.rs
safe-intrinsic.rs
same-crate-hidden-impl-parameter.rs
sanitizer-option.rs
search-index-primitive-inherent-method-23511.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
search-index-summaries.rs
search-index.rs
short-docblock-codeblock.rs
short-docblock.rs
short-line.md
show-const-contents.rs Reuse const rendering from rustdoc in rmeta encoding 2023-09-01 17:22:48 -04:00
sidebar-all-page.rs
sidebar-items.rs
sidebar-link-generation.rs
sidebar-links-to-foreign-impl.rs
sized_trait.rs
slice-links.link_box_generic.html
slice-links.link_box_u32.html
slice-links.link_slice_generic.html
slice-links.link_slice_u32.html
slice-links.rs
smart-punct.rs
smoke.rs
sort-modules-by-appearance.rs
source-file.rs
source-version-separator.rs
src-link-external-macro-26606.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
src-links-auto-impls.rs
src-links-external.rs
src-links.rs
src-mod-path-absolute-26995.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
stability.rs
staged-api-feature-issue-27759.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
static-root-path.rs
static.rs
strip-block-doc-comments-stars.docblock.html
strip-block-doc-comments-stars.rs
strip-enum-variant.no-not-shown.html
strip-enum-variant.rs
strip-priv-imports-pass-27104.rs Add URL to test case issues 2023-10-04 13:04:45 -07:00
struct-arg-pattern.rs
struct-field.rs
struct-implementations-title.rs
structfields.rs
tab_title.rs
table-in-docblock.rs
task-lists.rs
test-lists.rs
test-parens.rs
test-strikethrough.rs
thread-local-src.rs
titles.rs
toggle-item-contents.rs
toggle-method.rs
toggle-trait-fn.rs
trait_alias.rs
trait-alias-mention.rs
trait-impl-items-links-and-anchors.rs
trait-impl.rs
trait-self-link.rs
trait-src-link.rs
trait-visibility.rs
traits-in-bodies-private.rs
traits-in-bodies.rs
tuple-struct-fields-doc.rs
tuples.link1_i32.html
tuples.link1_t.html
tuples.link2_i32.html
tuples.link2_t.html
tuples.link2_tu.html
tuples.link_unit.html
tuples.rs
type-layout-flag-required.rs
type-layout.rs
typedef-inner-variants-lazy_type_alias.rs rustdoc: always print type alias inner type (with it's where clauses) 2023-08-28 14:03:33 +02:00
typedef-inner-variants.rs rustdoc: always print type alias inner type (with it's where clauses) 2023-08-28 14:03:33 +02:00
typedef.rs
unindent.md
unindent.rs
union-fields-html.rs
union.rs
unit-return.rs
universal-impl-trait.rs
unneeded-trait-implementations-title.rs
use-attr.rs
useless_lifetime_bound.rs
variadic.rs
version-separator-without-source.rs
viewpath-rename.rs
viewpath-self.rs
visibility.rs
where-clause-order.rs
where-sized.rs
where.alpha_trait_decl.html Render missing fields in tuple struct/enum as /* private fields */ 2023-09-06 11:16:05 +02:00
where.bravo_trait_decl.html
where.charlie_fn_decl.html
where.golf_type_alias_decl.html
where.rs Render missing fields in tuple struct/enum as /* private fields */ 2023-09-06 11:16:05 +02:00
where.SWhere_Echo_impl.html
where.SWhere_Simd_item-decl.html Render missing fields in tuple struct/enum as /* private fields */ 2023-09-06 11:16:05 +02:00
where.SWhere_TraitWhere_item-decl.html
whitespace-after-where-clause.enum2.html
whitespace-after-where-clause.enum.html
whitespace-after-where-clause.rs
whitespace-after-where-clause.struct2.html
whitespace-after-where-clause.struct.html
whitespace-after-where-clause.trait2.html
whitespace-after-where-clause.trait.html
whitespace-after-where-clause.union2.html
whitespace-after-where-clause.union.html
without-redirect.rs
wrapping.rs