Skip to content

Commit c456e15

Browse files
Add regression tests for #110422
1 parent c3c9f8f commit c456e15

3 files changed

+68
-17
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
// check-pass
2+
13
fn f() -> impl Sized {
2-
enum E { //~ ERROR
4+
enum E {
35
V(E),
46
}
7+
58
unimplemented!()
69
}

tests/rustdoc-ui/infinite-recursive-type-impl-trait.stderr

-16
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Regression test for <https://github.com/rust-lang/rust/issues/110422>.
2+
// This test ensures that inner items (except for implementations and macros)
3+
// don't appear in documentation.
4+
5+
// compile-flags: --document-private-items
6+
7+
#![crate_name = "foo"]
8+
9+
// @has 'foo/index.html'
10+
// Checking there is no "trait" entry.
11+
// @count - '//*[@id="main-content"]/*[@class="small-section-header"]' 4
12+
// @has - '//*[@id="main-content"]/*[@class="small-section-header"]' 'Structs'
13+
// @has - '//*[@id="main-content"]/*[@class="small-section-header"]' 'Constants'
14+
// @has - '//*[@id="main-content"]/*[@class="small-section-header"]' 'Functions'
15+
// @has - '//*[@id="main-content"]/*[@class="small-section-header"]' 'Macros'
16+
17+
// @has - '//a[@href="fn.foo.html"]' 'foo'
18+
fn foo() {
19+
fn bar() {}
20+
21+
// @has - '//a[@class="macro"]' 'visible_macro'
22+
// @!has - '//a[@class="macro"]' 'non_visible_macro'
23+
// @has 'foo/macro.visible_macro.html'
24+
// @!has 'foo/macro.non_visible_macro.html'
25+
#[macro_export]
26+
macro_rules! visible_macro {
27+
() => {}
28+
}
29+
30+
macro_rules! non_visible_macro {
31+
() => {}
32+
}
33+
}
34+
35+
// @has 'foo/index.html'
36+
// @has - '//a[@href="struct.Bar.html"]' 'Bar'
37+
struct Bar;
38+
39+
const BAR: i32 = {
40+
// @!has - '//a[@href="fn.yo.html"]' 'yo'
41+
// @!has 'foo/fn.yo.html'
42+
fn yo() {}
43+
44+
// @!has 'foo/index.html' '//a[@href="trait.Foo.html"]' 'Foo'
45+
// @!has 'foo/trait.Foo.html'
46+
trait Foo {
47+
fn babar() {}
48+
}
49+
impl Foo for Bar {}
50+
51+
// @has 'foo/struct.Bar.html'
52+
// @has - '//*[@id="method.foo"]/*[@class="code-header"]' 'pub(crate) fn foo()'
53+
// @count - '//*[@id="main-content"]/*[@class="small-section-header"]' 3
54+
// We now check that the `Foo` trait is not documented nor visible on `Bar` page.
55+
// @has - '//*[@id="main-content"]/*[@class="small-section-header"]' 'Implementations'
56+
// @has - '//*[@id="main-content"]/*[@class="small-section-header"]' 'Auto Trait Implementations'
57+
// @has - '//*[@id="main-content"]/*[@class="small-section-header"]' 'Blanket Implementations'
58+
// @!has - '//*[@href="trait.Foo.html#method.babar"]/*[@class="code-header"]' 'fn babar()'
59+
impl Bar {
60+
fn foo() {}
61+
}
62+
63+
1
64+
};

0 commit comments

Comments
 (0)