|  | //@ compile-flags: --document-private-items | 
|  |  | 
|  | #![feature(inherent_associated_types)] | 
|  | #![allow(incomplete_features)] | 
|  | #![crate_name = "foo"] | 
|  |  | 
|  | //@ has 'foo/struct.Foo.html' | 
|  | 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`). | 
|  | //@ count - '//*[@class="impl"]' 'impl Foo' 4 | 
|  |  | 
|  | // 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() {} | 
|  | } |