2022-08-09 08:49:55 -05:00
|
|
|
//@ compile-flags: --document-private-items
|
|
|
|
|
|
|
|
#![feature(inherent_associated_types)]
|
|
|
|
#![allow(incomplete_features)]
|
|
|
|
#![crate_name = "foo"]
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has 'foo/struct.Foo.html'
|
2022-08-09 08:49:55 -05:00
|
|
|
pub struct Foo;
|
|
|
|
|
|
|
|
// There are 3 impl blocks with public item and one that should not be displayed
|
|
|
|
// by default because it only contains private items (but not in this case because
|
|
|
|
// we used `--document-private-items`).
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ count - '//*[@class="impl"]' 'impl Foo' 4
|
2022-08-09 08:49:55 -05:00
|
|
|
|
|
|
|
// Impl block only containing private items should not be displayed unless the
|
|
|
|
// `--document-private-items` flag is used.
|
|
|
|
/// Private
|
|
|
|
impl Foo {
|
|
|
|
const BAR: u32 = 0;
|
|
|
|
type FOO = i32;
|
|
|
|
fn hello() {}
|
|
|
|
}
|
|
|
|
|
|
|
|
// But if any element of the impl block is public, it should be displayed.
|
|
|
|
/// Not private
|
|
|
|
impl Foo {
|
|
|
|
pub const BAR: u32 = 0;
|
|
|
|
type FOO = i32;
|
|
|
|
fn hello() {}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Not private
|
|
|
|
impl Foo {
|
|
|
|
const BAR: u32 = 0;
|
|
|
|
pub type FOO = i32;
|
|
|
|
fn hello() {}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Not private
|
|
|
|
impl Foo {
|
|
|
|
const BAR: u32 = 0;
|
|
|
|
type FOO = i32;
|
|
|
|
pub fn hello() {}
|
|
|
|
}
|