From 4b6bc735079bc07928efe791fecc9ec6cba81fe1 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 5 May 2025 17:13:39 +0200 Subject: Created `tests/rustdoc/enum` subfolder to limit number of files at the top level --- tests/rustdoc/auxiliary/enum-variant.rs | 48 ------ tests/rustdoc/auxiliary/variant-struct.rs | 5 - tests/rustdoc/enum-headings.rs | 40 ----- tests/rustdoc/enum-non-exhaustive-108925.rs | 13 -- .../rustdoc/enum-variant-doc-hidden-field-88600.rs | 37 ---- tests/rustdoc/enum-variant-fields-heading.rs | 18 -- .../enum-variant-fields-heading.variants.html | 3 - tests/rustdoc/enum-variant-value.rs | 191 --------------------- tests/rustdoc/enum/auxiliary/enum-variant.rs | 48 ++++++ tests/rustdoc/enum/auxiliary/variant-struct.rs | 5 + tests/rustdoc/enum/enum-headings.rs | 40 +++++ tests/rustdoc/enum/enum-non-exhaustive-108925.rs | 13 ++ .../enum/enum-variant-doc-hidden-field-88600.rs | 37 ++++ tests/rustdoc/enum/enum-variant-fields-heading.rs | 18 ++ .../enum/enum-variant-fields-heading.variants.html | 3 + tests/rustdoc/enum/enum-variant-value.rs | 191 +++++++++++++++++++++ .../enum/render-enum-variant-structlike-32395.rs | 18 ++ .../enum/strip-enum-variant.no-not-shown.html | 1 + tests/rustdoc/enum/strip-enum-variant.rs | 11 ++ .../render-enum-variant-structlike-32395.rs | 18 -- tests/rustdoc/strip-enum-variant.no-not-shown.html | 1 - tests/rustdoc/strip-enum-variant.rs | 11 -- 22 files changed, 385 insertions(+), 385 deletions(-) delete mode 100644 tests/rustdoc/auxiliary/enum-variant.rs delete mode 100644 tests/rustdoc/auxiliary/variant-struct.rs delete mode 100644 tests/rustdoc/enum-headings.rs delete mode 100644 tests/rustdoc/enum-non-exhaustive-108925.rs delete mode 100644 tests/rustdoc/enum-variant-doc-hidden-field-88600.rs delete mode 100644 tests/rustdoc/enum-variant-fields-heading.rs delete mode 100644 tests/rustdoc/enum-variant-fields-heading.variants.html delete mode 100644 tests/rustdoc/enum-variant-value.rs create mode 100644 tests/rustdoc/enum/auxiliary/enum-variant.rs create mode 100644 tests/rustdoc/enum/auxiliary/variant-struct.rs create mode 100644 tests/rustdoc/enum/enum-headings.rs create mode 100644 tests/rustdoc/enum/enum-non-exhaustive-108925.rs create mode 100644 tests/rustdoc/enum/enum-variant-doc-hidden-field-88600.rs create mode 100644 tests/rustdoc/enum/enum-variant-fields-heading.rs create mode 100644 tests/rustdoc/enum/enum-variant-fields-heading.variants.html create mode 100644 tests/rustdoc/enum/enum-variant-value.rs create mode 100644 tests/rustdoc/enum/render-enum-variant-structlike-32395.rs create mode 100644 tests/rustdoc/enum/strip-enum-variant.no-not-shown.html create mode 100644 tests/rustdoc/enum/strip-enum-variant.rs delete mode 100644 tests/rustdoc/render-enum-variant-structlike-32395.rs delete mode 100644 tests/rustdoc/strip-enum-variant.no-not-shown.html delete mode 100644 tests/rustdoc/strip-enum-variant.rs diff --git a/tests/rustdoc/auxiliary/enum-variant.rs b/tests/rustdoc/auxiliary/enum-variant.rs deleted file mode 100644 index a0a7fd894f9..00000000000 --- a/tests/rustdoc/auxiliary/enum-variant.rs +++ /dev/null @@ -1,48 +0,0 @@ -#![crate_name = "bar"] - -pub enum E { - A = 12, - B, - C = 1245, -} - -pub enum F { - A, - B, -} - -#[repr(u32)] -pub enum G { - A = 12, - B, - C(u32), -} - -pub enum H { - A, - C(u32), -} - -#[repr(C)] -pub enum N { - A, - B, -} - -#[repr(C)] -pub enum O { - A(u32), - B, -} - -#[repr(u32)] -pub enum P { - A, - B, -} - -#[repr(u32)] -pub enum Q { - A(u32), - B, -} diff --git a/tests/rustdoc/auxiliary/variant-struct.rs b/tests/rustdoc/auxiliary/variant-struct.rs deleted file mode 100644 index 0f3d2e5f1b7..00000000000 --- a/tests/rustdoc/auxiliary/variant-struct.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub enum Foo { - Bar { - qux: (), - } -} diff --git a/tests/rustdoc/enum-headings.rs b/tests/rustdoc/enum-headings.rs deleted file mode 100644 index 6deabf1cd9a..00000000000 --- a/tests/rustdoc/enum-headings.rs +++ /dev/null @@ -1,40 +0,0 @@ -#![crate_name = "foo"] -//@ has foo/enum.Token.html -/// A token! -/// # First -/// Some following text... -//@ has - '//h2[@id="first"]' "First" -pub enum Token { - /// A declaration! - /// # Variant-First - /// Some following text... - //@ has - '//h4[@id="variant-first"]' "Variant-First" - Declaration { - /// A version! - /// # Variant-Field-First - /// Some following text... - //@ has - '//h5[@id="variant-field-first"]' "Variant-Field-First" - version: String, - }, - /// A Zoople! - /// # Variant-First - Zoople( - //@ has - '//h5[@id="variant-tuple-field-first"]' "Variant-Tuple-Field-First" - /// Zoople's first variant! - /// # Variant-Tuple-Field-First - /// Some following text... - usize, - ), - /// Unfinished business! - /// # Non-Exhaustive-First - /// Some following text... - //@ has - '//h4[@id="non-exhaustive-first"]' "Non-Exhaustive-First" - #[non_exhaustive] - Unfinished { - /// This is x. - /// # X-First - /// Some following text... - //@ has - '//h5[@id="x-first"]' "X-First" - x: usize, - }, -} diff --git a/tests/rustdoc/enum-non-exhaustive-108925.rs b/tests/rustdoc/enum-non-exhaustive-108925.rs deleted file mode 100644 index ea2462449d2..00000000000 --- a/tests/rustdoc/enum-non-exhaustive-108925.rs +++ /dev/null @@ -1,13 +0,0 @@ -// https://github.com/rust-lang/rust/issues/108925 -#![crate_name="foo"] - -//@ has foo/enum.MyThing.html -//@ has - '//code' 'Shown' -//@ !has - '//code' 'NotShown' -//@ !has - '//code' '// some variants omitted' -#[non_exhaustive] -pub enum MyThing { - Shown, - #[doc(hidden)] - NotShown, -} diff --git a/tests/rustdoc/enum-variant-doc-hidden-field-88600.rs b/tests/rustdoc/enum-variant-doc-hidden-field-88600.rs deleted file mode 100644 index f1d461c66c3..00000000000 --- a/tests/rustdoc/enum-variant-doc-hidden-field-88600.rs +++ /dev/null @@ -1,37 +0,0 @@ -// This test ensure that #[doc(hidden)] is applied correctly in enum variant fields. -// https://github.com/rust-lang/rust/issues/88600 -#![crate_name = "foo"] - -// Denotes a field which should be hidden. -pub struct H; - -// Denotes a field which should not be hidden (shown). -pub struct S; - -//@ has foo/enum.FooEnum.html -pub enum FooEnum { - //@ has - '//*[@id="variant.HiddenTupleItem"]//h3' 'HiddenTupleItem(/* private fields */)' - //@ count - '//*[@id="variant.HiddenTupleItem.field.0"]' 0 - HiddenTupleItem(#[doc(hidden)] H), - //@ has - '//*[@id="variant.MultipleHidden"]//h3' 'MultipleHidden(/* private fields */)' - //@ 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"]//h3' 'MixedHiddenFirst(_, S)' - //@ count - '//*[@id="variant.MixedHiddenFirst.field.0"]' 0 - //@ has - '//*[@id="variant.MixedHiddenFirst.field.1"]' '1: S' - MixedHiddenFirst(#[doc(hidden)] H, /** dox */ S), - //@ has - '//*[@id="variant.MixedHiddenLast"]//h3' 'MixedHiddenLast(S, _)' - //@ has - '//*[@id="variant.MixedHiddenLast.field.0"]' '0: S' - //@ count - '//*[@id="variant.MixedHiddenLast.field.1"]' 0 - MixedHiddenLast(/** dox */ S, #[doc(hidden)] H), - //@ has - '//*[@id="variant.HiddenStruct"]//h3' 'HiddenStruct' - //@ count - '//*[@id="variant.HiddenStruct.field.h"]' 0 - //@ has - '//*[@id="variant.HiddenStruct.field.s"]' 's: S' - HiddenStruct { - #[doc(hidden)] - h: H, - /// dox - s: S, - }, -} diff --git a/tests/rustdoc/enum-variant-fields-heading.rs b/tests/rustdoc/enum-variant-fields-heading.rs deleted file mode 100644 index e210667d3c0..00000000000 --- a/tests/rustdoc/enum-variant-fields-heading.rs +++ /dev/null @@ -1,18 +0,0 @@ -// This is a regression test for . -// It ensures that the "Fields" heading is not generated if no field is displayed. - -#![crate_name = "foo"] - -//@ has 'foo/enum.Foo.html' -//@ has - '//*[@id="variant.A"]' 'A' -//@ count - '//*[@id="variant.A.fields"]' 0 -//@ has - '//*[@id="variant.B"]' 'B' -//@ count - '//*[@id="variant.B.fields"]' 0 -//@ snapshot variants - '//*[@id="main-content"]/*[@class="variants"]' - -pub enum Foo { - /// A variant with no fields - A {}, - /// A variant with hidden fields - B { #[doc(hidden)] a: u8 }, -} diff --git a/tests/rustdoc/enum-variant-fields-heading.variants.html b/tests/rustdoc/enum-variant-fields-heading.variants.html deleted file mode 100644 index bcb36f7cf86..00000000000 --- a/tests/rustdoc/enum-variant-fields-heading.variants.html +++ /dev/null @@ -1,3 +0,0 @@ -
§

A

A variant with no fields

-
§

B

A variant with hidden fields

-
\ No newline at end of file diff --git a/tests/rustdoc/enum-variant-value.rs b/tests/rustdoc/enum-variant-value.rs deleted file mode 100644 index 1670de8a24f..00000000000 --- a/tests/rustdoc/enum-variant-value.rs +++ /dev/null @@ -1,191 +0,0 @@ -// This test ensures that the variant value is displayed with underscores but without -// a type name at the end. - -//@ aux-build:enum-variant.rs - -#![crate_name = "foo"] - -extern crate bar; - -// In this case, since all variants are C-like variants and at least one of them -// has its value set, we display values for all of them. - -//@ has 'foo/enum.A.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 12,' -//@ has - '//*[@class="rust item-decl"]/code' 'B = 13,' -//@ has - '//*[@class="rust item-decl"]/code' 'C = 1_245,' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 12$' -//@ matches - '//*[@id="variant.B"]/h3' '^B = 13$' -//@ matches - '//*[@id="variant.C"]/h3' '^C = 1_245$' -pub enum A { - A = 12, - B, - C = 1245, -} - -// In this case, all variants are C-like variants but none of them has its value set. -// Therefore we don't display values. - -//@ has 'foo/enum.B.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A,' -//@ has - '//*[@class="rust item-decl"]/code' 'B,' -//@ matches - '//*[@id="variant.A"]/h3' '^A$' -//@ matches - '//*[@id="variant.B"]/h3' '^B$' -pub enum B { - A, - B, -} - -// In this case, not all variants are C-like variants so we don't display values. - -//@ has 'foo/enum.C.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 12,' -//@ has - '//*[@class="rust item-decl"]/code' 'B,' -//@ has - '//*[@class="rust item-decl"]/code' 'C(u32),' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 12$' -//@ matches - '//*[@id="variant.B"]/h3' '^B$' -//@ has - '//*[@id="variant.C"]/h3' 'C(u32)' -#[repr(u32)] -pub enum C { - A = 12, - B, - C(u32), -} - -// In this case, not all variants are C-like variants and no C-like variant has its -// value set, so we don't display values. - -//@ has 'foo/enum.D.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A,' -//@ has - '//*[@class="rust item-decl"]/code' 'C(u32),' -//@ matches - '//*[@id="variant.A"]/h3' '^A$' -//@ has - '//*[@id="variant.C"]/h3' 'C(u32)' -pub enum D { - A, - C(u32), -} - -//@ has 'foo/enum.E.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 12,' -//@ has - '//*[@class="rust item-decl"]/code' 'B = 13,' -//@ has - '//*[@class="rust item-decl"]/code' 'C = 1_245,' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 12$' -//@ matches - '//*[@id="variant.B"]/h3' '^B = 13$' -//@ matches - '//*[@id="variant.C"]/h3' '^C = 1_245$' -pub use bar::E; - -//@ has 'foo/enum.F.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A,' -//@ has - '//*[@class="rust item-decl"]/code' 'B,' -//@ matches - '//*[@id="variant.A"]/h3' '^A$' -//@ matches - '//*[@id="variant.B"]/h3' '^B$' -pub use bar::F; - -//@ has 'foo/enum.G.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 12,' -//@ has - '//*[@class="rust item-decl"]/code' 'B,' -//@ has - '//*[@class="rust item-decl"]/code' 'C(u32),' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 12$' -//@ matches - '//*[@id="variant.B"]/h3' '^B$' -//@ has - '//*[@id="variant.C"]/h3' 'C(u32)' -pub use bar::G; - -//@ has 'foo/enum.H.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A,' -//@ has - '//*[@class="rust item-decl"]/code' 'C(u32),' -//@ matches - '//*[@id="variant.A"]/h3' '^A$' -//@ has - '//*[@id="variant.C"]/h3' 'C(u32)' -pub use bar::H; - -// Testing more complex cases. -pub const X: isize = 2; -//@ has 'foo/enum.I.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 2,' -//@ has - '//*[@class="rust item-decl"]/code' 'B = 4,' -//@ has - '//*[@class="rust item-decl"]/code' 'C = 9,' -//@ has - '//*[@class="rust item-decl"]/code' 'D = -1,' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 2$' -//@ matches - '//*[@id="variant.B"]/h3' '^B = 4$' -//@ matches - '//*[@id="variant.C"]/h3' '^C = 9$' -//@ matches - '//*[@id="variant.D"]/h3' '^D = -1$' -#[repr(isize)] -pub enum I { - A = X, - B = X * 2, - C = Self::B as isize + X + 3, - D = -1, -} - -// Testing `repr`. - -//@ has 'foo/enum.J.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 0,' -//@ has - '//*[@class="rust item-decl"]/code' 'B = 1,' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 0$' -//@ matches - '//*[@id="variant.B"]/h3' '^B = 1$' -#[repr(C)] -pub enum J { - A, - B, -} - -//@ has 'foo/enum.K.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A(u32),' -//@ has - '//*[@class="rust item-decl"]/code' 'B,' -//@ has - '//*[@id="variant.A"]/h3' 'A(u32)' -//@ matches - '//*[@id="variant.B"]/h3' '^B$' -#[repr(C)] -pub enum K { - A(u32), - B, -} - -//@ has 'foo/enum.L.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 0,' -//@ has - '//*[@class="rust item-decl"]/code' 'B = 1,' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 0$' -//@ matches - '//*[@id="variant.B"]/h3' '^B = 1$' -#[repr(u32)] -pub enum L { - A, - B, -} - -//@ has 'foo/enum.M.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A(u32),' -//@ has - '//*[@class="rust item-decl"]/code' 'B,' -//@ has - '//*[@id="variant.A"]/h3' 'A(u32)' -//@ matches - '//*[@id="variant.B"]/h3' '^B$' -#[repr(u32)] -pub enum M { - A(u32), - B, -} - -//@ has 'foo/enum.N.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 0,' -//@ has - '//*[@class="rust item-decl"]/code' 'B = 1,' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 0$' -//@ matches - '//*[@id="variant.B"]/h3' '^B = 1$' -pub use bar::N; - -//@ has 'foo/enum.O.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A(u32),' -//@ has - '//*[@class="rust item-decl"]/code' 'B,' -//@ has - '//*[@id="variant.A"]/h3' 'A(u32)' -//@ matches - '//*[@id="variant.B"]/h3' '^B$' -pub use bar::O; - -//@ has 'foo/enum.P.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A = 0,' -//@ has - '//*[@class="rust item-decl"]/code' 'B = 1,' -//@ matches - '//*[@id="variant.A"]/h3' '^A = 0$' -//@ matches - '//*[@id="variant.B"]/h3' '^B = 1$' -pub use bar::P; - -//@ has 'foo/enum.Q.html' -//@ has - '//*[@class="rust item-decl"]/code' 'A(u32),' -//@ has - '//*[@class="rust item-decl"]/code' 'B,' -//@ has - '//*[@id="variant.A"]/h3' 'A(u32)' -//@ matches - '//*[@id="variant.B"]/h3' '^B$' -pub use bar::Q; diff --git a/tests/rustdoc/enum/auxiliary/enum-variant.rs b/tests/rustdoc/enum/auxiliary/enum-variant.rs new file mode 100644 index 00000000000..a0a7fd894f9 --- /dev/null +++ b/tests/rustdoc/enum/auxiliary/enum-variant.rs @@ -0,0 +1,48 @@ +#![crate_name = "bar"] + +pub enum E { + A = 12, + B, + C = 1245, +} + +pub enum F { + A, + B, +} + +#[repr(u32)] +pub enum G { + A = 12, + B, + C(u32), +} + +pub enum H { + A, + C(u32), +} + +#[repr(C)] +pub enum N { + A, + B, +} + +#[repr(C)] +pub enum O { + A(u32), + B, +} + +#[repr(u32)] +pub enum P { + A, + B, +} + +#[repr(u32)] +pub enum Q { + A(u32), + B, +} diff --git a/tests/rustdoc/enum/auxiliary/variant-struct.rs b/tests/rustdoc/enum/auxiliary/variant-struct.rs new file mode 100644 index 00000000000..0f3d2e5f1b7 --- /dev/null +++ b/tests/rustdoc/enum/auxiliary/variant-struct.rs @@ -0,0 +1,5 @@ +pub enum Foo { + Bar { + qux: (), + } +} diff --git a/tests/rustdoc/enum/enum-headings.rs b/tests/rustdoc/enum/enum-headings.rs new file mode 100644 index 00000000000..6deabf1cd9a --- /dev/null +++ b/tests/rustdoc/enum/enum-headings.rs @@ -0,0 +1,40 @@ +#![crate_name = "foo"] +//@ has foo/enum.Token.html +/// A token! +/// # First +/// Some following text... +//@ has - '//h2[@id="first"]' "First" +pub enum Token { + /// A declaration! + /// # Variant-First + /// Some following text... + //@ has - '//h4[@id="variant-first"]' "Variant-First" + Declaration { + /// A version! + /// # Variant-Field-First + /// Some following text... + //@ has - '//h5[@id="variant-field-first"]' "Variant-Field-First" + version: String, + }, + /// A Zoople! + /// # Variant-First + Zoople( + //@ has - '//h5[@id="variant-tuple-field-first"]' "Variant-Tuple-Field-First" + /// Zoople's first variant! + /// # Variant-Tuple-Field-First + /// Some following text... + usize, + ), + /// Unfinished business! + /// # Non-Exhaustive-First + /// Some following text... + //@ has - '//h4[@id="non-exhaustive-first"]' "Non-Exhaustive-First" + #[non_exhaustive] + Unfinished { + /// This is x. + /// # X-First + /// Some following text... + //@ has - '//h5[@id="x-first"]' "X-First" + x: usize, + }, +} diff --git a/tests/rustdoc/enum/enum-non-exhaustive-108925.rs b/tests/rustdoc/enum/enum-non-exhaustive-108925.rs new file mode 100644 index 00000000000..ea2462449d2 --- /dev/null +++ b/tests/rustdoc/enum/enum-non-exhaustive-108925.rs @@ -0,0 +1,13 @@ +// https://github.com/rust-lang/rust/issues/108925 +#![crate_name="foo"] + +//@ has foo/enum.MyThing.html +//@ has - '//code' 'Shown' +//@ !has - '//code' 'NotShown' +//@ !has - '//code' '// some variants omitted' +#[non_exhaustive] +pub enum MyThing { + Shown, + #[doc(hidden)] + NotShown, +} diff --git a/tests/rustdoc/enum/enum-variant-doc-hidden-field-88600.rs b/tests/rustdoc/enum/enum-variant-doc-hidden-field-88600.rs new file mode 100644 index 00000000000..f1d461c66c3 --- /dev/null +++ b/tests/rustdoc/enum/enum-variant-doc-hidden-field-88600.rs @@ -0,0 +1,37 @@ +// This test ensure that #[doc(hidden)] is applied correctly in enum variant fields. +// https://github.com/rust-lang/rust/issues/88600 +#![crate_name = "foo"] + +// Denotes a field which should be hidden. +pub struct H; + +// Denotes a field which should not be hidden (shown). +pub struct S; + +//@ has foo/enum.FooEnum.html +pub enum FooEnum { + //@ has - '//*[@id="variant.HiddenTupleItem"]//h3' 'HiddenTupleItem(/* private fields */)' + //@ count - '//*[@id="variant.HiddenTupleItem.field.0"]' 0 + HiddenTupleItem(#[doc(hidden)] H), + //@ has - '//*[@id="variant.MultipleHidden"]//h3' 'MultipleHidden(/* private fields */)' + //@ 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"]//h3' 'MixedHiddenFirst(_, S)' + //@ count - '//*[@id="variant.MixedHiddenFirst.field.0"]' 0 + //@ has - '//*[@id="variant.MixedHiddenFirst.field.1"]' '1: S' + MixedHiddenFirst(#[doc(hidden)] H, /** dox */ S), + //@ has - '//*[@id="variant.MixedHiddenLast"]//h3' 'MixedHiddenLast(S, _)' + //@ has - '//*[@id="variant.MixedHiddenLast.field.0"]' '0: S' + //@ count - '//*[@id="variant.MixedHiddenLast.field.1"]' 0 + MixedHiddenLast(/** dox */ S, #[doc(hidden)] H), + //@ has - '//*[@id="variant.HiddenStruct"]//h3' 'HiddenStruct' + //@ count - '//*[@id="variant.HiddenStruct.field.h"]' 0 + //@ has - '//*[@id="variant.HiddenStruct.field.s"]' 's: S' + HiddenStruct { + #[doc(hidden)] + h: H, + /// dox + s: S, + }, +} diff --git a/tests/rustdoc/enum/enum-variant-fields-heading.rs b/tests/rustdoc/enum/enum-variant-fields-heading.rs new file mode 100644 index 00000000000..e210667d3c0 --- /dev/null +++ b/tests/rustdoc/enum/enum-variant-fields-heading.rs @@ -0,0 +1,18 @@ +// This is a regression test for . +// It ensures that the "Fields" heading is not generated if no field is displayed. + +#![crate_name = "foo"] + +//@ has 'foo/enum.Foo.html' +//@ has - '//*[@id="variant.A"]' 'A' +//@ count - '//*[@id="variant.A.fields"]' 0 +//@ has - '//*[@id="variant.B"]' 'B' +//@ count - '//*[@id="variant.B.fields"]' 0 +//@ snapshot variants - '//*[@id="main-content"]/*[@class="variants"]' + +pub enum Foo { + /// A variant with no fields + A {}, + /// A variant with hidden fields + B { #[doc(hidden)] a: u8 }, +} diff --git a/tests/rustdoc/enum/enum-variant-fields-heading.variants.html b/tests/rustdoc/enum/enum-variant-fields-heading.variants.html new file mode 100644 index 00000000000..bcb36f7cf86 --- /dev/null +++ b/tests/rustdoc/enum/enum-variant-fields-heading.variants.html @@ -0,0 +1,3 @@ +
§

A

A variant with no fields

+
§

B

A variant with hidden fields

+
\ No newline at end of file diff --git a/tests/rustdoc/enum/enum-variant-value.rs b/tests/rustdoc/enum/enum-variant-value.rs new file mode 100644 index 00000000000..1670de8a24f --- /dev/null +++ b/tests/rustdoc/enum/enum-variant-value.rs @@ -0,0 +1,191 @@ +// This test ensures that the variant value is displayed with underscores but without +// a type name at the end. + +//@ aux-build:enum-variant.rs + +#![crate_name = "foo"] + +extern crate bar; + +// In this case, since all variants are C-like variants and at least one of them +// has its value set, we display values for all of them. + +//@ has 'foo/enum.A.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 12,' +//@ has - '//*[@class="rust item-decl"]/code' 'B = 13,' +//@ has - '//*[@class="rust item-decl"]/code' 'C = 1_245,' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 12$' +//@ matches - '//*[@id="variant.B"]/h3' '^B = 13$' +//@ matches - '//*[@id="variant.C"]/h3' '^C = 1_245$' +pub enum A { + A = 12, + B, + C = 1245, +} + +// In this case, all variants are C-like variants but none of them has its value set. +// Therefore we don't display values. + +//@ has 'foo/enum.B.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A,' +//@ has - '//*[@class="rust item-decl"]/code' 'B,' +//@ matches - '//*[@id="variant.A"]/h3' '^A$' +//@ matches - '//*[@id="variant.B"]/h3' '^B$' +pub enum B { + A, + B, +} + +// In this case, not all variants are C-like variants so we don't display values. + +//@ has 'foo/enum.C.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 12,' +//@ has - '//*[@class="rust item-decl"]/code' 'B,' +//@ has - '//*[@class="rust item-decl"]/code' 'C(u32),' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 12$' +//@ matches - '//*[@id="variant.B"]/h3' '^B$' +//@ has - '//*[@id="variant.C"]/h3' 'C(u32)' +#[repr(u32)] +pub enum C { + A = 12, + B, + C(u32), +} + +// In this case, not all variants are C-like variants and no C-like variant has its +// value set, so we don't display values. + +//@ has 'foo/enum.D.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A,' +//@ has - '//*[@class="rust item-decl"]/code' 'C(u32),' +//@ matches - '//*[@id="variant.A"]/h3' '^A$' +//@ has - '//*[@id="variant.C"]/h3' 'C(u32)' +pub enum D { + A, + C(u32), +} + +//@ has 'foo/enum.E.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 12,' +//@ has - '//*[@class="rust item-decl"]/code' 'B = 13,' +//@ has - '//*[@class="rust item-decl"]/code' 'C = 1_245,' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 12$' +//@ matches - '//*[@id="variant.B"]/h3' '^B = 13$' +//@ matches - '//*[@id="variant.C"]/h3' '^C = 1_245$' +pub use bar::E; + +//@ has 'foo/enum.F.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A,' +//@ has - '//*[@class="rust item-decl"]/code' 'B,' +//@ matches - '//*[@id="variant.A"]/h3' '^A$' +//@ matches - '//*[@id="variant.B"]/h3' '^B$' +pub use bar::F; + +//@ has 'foo/enum.G.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 12,' +//@ has - '//*[@class="rust item-decl"]/code' 'B,' +//@ has - '//*[@class="rust item-decl"]/code' 'C(u32),' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 12$' +//@ matches - '//*[@id="variant.B"]/h3' '^B$' +//@ has - '//*[@id="variant.C"]/h3' 'C(u32)' +pub use bar::G; + +//@ has 'foo/enum.H.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A,' +//@ has - '//*[@class="rust item-decl"]/code' 'C(u32),' +//@ matches - '//*[@id="variant.A"]/h3' '^A$' +//@ has - '//*[@id="variant.C"]/h3' 'C(u32)' +pub use bar::H; + +// Testing more complex cases. +pub const X: isize = 2; +//@ has 'foo/enum.I.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 2,' +//@ has - '//*[@class="rust item-decl"]/code' 'B = 4,' +//@ has - '//*[@class="rust item-decl"]/code' 'C = 9,' +//@ has - '//*[@class="rust item-decl"]/code' 'D = -1,' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 2$' +//@ matches - '//*[@id="variant.B"]/h3' '^B = 4$' +//@ matches - '//*[@id="variant.C"]/h3' '^C = 9$' +//@ matches - '//*[@id="variant.D"]/h3' '^D = -1$' +#[repr(isize)] +pub enum I { + A = X, + B = X * 2, + C = Self::B as isize + X + 3, + D = -1, +} + +// Testing `repr`. + +//@ has 'foo/enum.J.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 0,' +//@ has - '//*[@class="rust item-decl"]/code' 'B = 1,' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 0$' +//@ matches - '//*[@id="variant.B"]/h3' '^B = 1$' +#[repr(C)] +pub enum J { + A, + B, +} + +//@ has 'foo/enum.K.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A(u32),' +//@ has - '//*[@class="rust item-decl"]/code' 'B,' +//@ has - '//*[@id="variant.A"]/h3' 'A(u32)' +//@ matches - '//*[@id="variant.B"]/h3' '^B$' +#[repr(C)] +pub enum K { + A(u32), + B, +} + +//@ has 'foo/enum.L.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 0,' +//@ has - '//*[@class="rust item-decl"]/code' 'B = 1,' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 0$' +//@ matches - '//*[@id="variant.B"]/h3' '^B = 1$' +#[repr(u32)] +pub enum L { + A, + B, +} + +//@ has 'foo/enum.M.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A(u32),' +//@ has - '//*[@class="rust item-decl"]/code' 'B,' +//@ has - '//*[@id="variant.A"]/h3' 'A(u32)' +//@ matches - '//*[@id="variant.B"]/h3' '^B$' +#[repr(u32)] +pub enum M { + A(u32), + B, +} + +//@ has 'foo/enum.N.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 0,' +//@ has - '//*[@class="rust item-decl"]/code' 'B = 1,' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 0$' +//@ matches - '//*[@id="variant.B"]/h3' '^B = 1$' +pub use bar::N; + +//@ has 'foo/enum.O.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A(u32),' +//@ has - '//*[@class="rust item-decl"]/code' 'B,' +//@ has - '//*[@id="variant.A"]/h3' 'A(u32)' +//@ matches - '//*[@id="variant.B"]/h3' '^B$' +pub use bar::O; + +//@ has 'foo/enum.P.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A = 0,' +//@ has - '//*[@class="rust item-decl"]/code' 'B = 1,' +//@ matches - '//*[@id="variant.A"]/h3' '^A = 0$' +//@ matches - '//*[@id="variant.B"]/h3' '^B = 1$' +pub use bar::P; + +//@ has 'foo/enum.Q.html' +//@ has - '//*[@class="rust item-decl"]/code' 'A(u32),' +//@ has - '//*[@class="rust item-decl"]/code' 'B,' +//@ has - '//*[@id="variant.A"]/h3' 'A(u32)' +//@ matches - '//*[@id="variant.B"]/h3' '^B$' +pub use bar::Q; diff --git a/tests/rustdoc/enum/render-enum-variant-structlike-32395.rs b/tests/rustdoc/enum/render-enum-variant-structlike-32395.rs new file mode 100644 index 00000000000..d4cefb2911d --- /dev/null +++ b/tests/rustdoc/enum/render-enum-variant-structlike-32395.rs @@ -0,0 +1,18 @@ +//@ aux-build:variant-struct.rs +//@ build-aux-docs +//@ ignore-cross-compile + +// https://github.com/rust-lang/rust/issues/32395 +#![crate_name="issue_32395"] + +//@ has variant_struct/enum.Foo.html +//@ !hasraw - 'pub qux' +//@ !hasraw - 'pub(crate) qux' +//@ !hasraw - 'pub Bar' +extern crate variant_struct; + +//@ has issue_32395/enum.Foo.html +//@ !hasraw - 'pub qux' +//@ !hasraw - 'pub(crate) qux' +//@ !hasraw - 'pub Bar' +pub use variant_struct::Foo; diff --git a/tests/rustdoc/enum/strip-enum-variant.no-not-shown.html b/tests/rustdoc/enum/strip-enum-variant.no-not-shown.html new file mode 100644 index 00000000000..d7a36cc631a --- /dev/null +++ b/tests/rustdoc/enum/strip-enum-variant.no-not-shown.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/rustdoc/enum/strip-enum-variant.rs b/tests/rustdoc/enum/strip-enum-variant.rs new file mode 100644 index 00000000000..9874588ef59 --- /dev/null +++ b/tests/rustdoc/enum/strip-enum-variant.rs @@ -0,0 +1,11 @@ +//@ has strip_enum_variant/enum.MyThing.html +//@ has - '//code' 'Shown' +//@ !has - '//code' 'NotShown' +//@ has - '//code' '// some variants omitted' +// Also check that `NotShown` isn't displayed in the sidebar. +//@ snapshot no-not-shown - '//*[@class="sidebar-elems"]/section/*[@class="block variant"]' +pub enum MyThing { + Shown, + #[doc(hidden)] + NotShown, +} diff --git a/tests/rustdoc/render-enum-variant-structlike-32395.rs b/tests/rustdoc/render-enum-variant-structlike-32395.rs deleted file mode 100644 index d4cefb2911d..00000000000 --- a/tests/rustdoc/render-enum-variant-structlike-32395.rs +++ /dev/null @@ -1,18 +0,0 @@ -//@ aux-build:variant-struct.rs -//@ build-aux-docs -//@ ignore-cross-compile - -// https://github.com/rust-lang/rust/issues/32395 -#![crate_name="issue_32395"] - -//@ has variant_struct/enum.Foo.html -//@ !hasraw - 'pub qux' -//@ !hasraw - 'pub(crate) qux' -//@ !hasraw - 'pub Bar' -extern crate variant_struct; - -//@ has issue_32395/enum.Foo.html -//@ !hasraw - 'pub qux' -//@ !hasraw - 'pub(crate) qux' -//@ !hasraw - 'pub Bar' -pub use variant_struct::Foo; diff --git a/tests/rustdoc/strip-enum-variant.no-not-shown.html b/tests/rustdoc/strip-enum-variant.no-not-shown.html deleted file mode 100644 index d7a36cc631a..00000000000 --- a/tests/rustdoc/strip-enum-variant.no-not-shown.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/tests/rustdoc/strip-enum-variant.rs b/tests/rustdoc/strip-enum-variant.rs deleted file mode 100644 index 9874588ef59..00000000000 --- a/tests/rustdoc/strip-enum-variant.rs +++ /dev/null @@ -1,11 +0,0 @@ -//@ has strip_enum_variant/enum.MyThing.html -//@ has - '//code' 'Shown' -//@ !has - '//code' 'NotShown' -//@ has - '//code' '// some variants omitted' -// Also check that `NotShown` isn't displayed in the sidebar. -//@ snapshot no-not-shown - '//*[@class="sidebar-elems"]/section/*[@class="block variant"]' -pub enum MyThing { - Shown, - #[doc(hidden)] - NotShown, -} -- cgit 1.4.1-3-g733a5