From 96f4f4e02eaf9ff43b8749dc165258468799c86c Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Wed, 19 Apr 2023 11:32:50 +0200 Subject: [PATCH] Add regression test for #94183 --- ...sue-94183-blanket-impl-reexported-trait.rs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/rustdoc/issue-94183-blanket-impl-reexported-trait.rs diff --git a/tests/rustdoc/issue-94183-blanket-impl-reexported-trait.rs b/tests/rustdoc/issue-94183-blanket-impl-reexported-trait.rs new file mode 100644 index 0000000000000..95ddd4c74715a --- /dev/null +++ b/tests/rustdoc/issue-94183-blanket-impl-reexported-trait.rs @@ -0,0 +1,31 @@ +// Regression test for . +// This test ensures that a publicly re-exported private trait will +// appear in the blanket impl list. + +#![crate_name = "foo"] + +// @has 'foo/struct.S.html' + +mod actual_sub { + pub trait Actual {} + pub trait Another {} + + // `Another` is publicly re-exported so it should appear in the blanket impl list. + // @has - '//*[@id="blanket-implementations-list"]//*[@class="code-header"]' 'impl Another for T' + impl Another for T {} + + trait Foo {} + + // `Foo` is not publicly re-exported nor reachable so it shouldn't appear in the + // blanket impl list. + // @!has - '//*[@id="blanket-implementations-list"]//*[@class="code-header"]' 'impl Foo for T' + impl Foo for T {} +} + +pub use actual_sub::{Actual, Another}; + +// `Actual` is publicly re-exported so it should appear in the blanket impl list. +// @has - '//*[@id="blanket-implementations-list"]//*[@class="code-header"]' 'impl Actual for T' +impl Actual for T {} + +pub struct S;