//@ compile-flags: -Z unstable-options --document-hidden-items

// test for trait methods with `doc(hidden)` with `--document-hidden-items` passed.
#![crate_name = "foo"]

//@ has foo/trait.Trait.html
//@ has - '//*[@id="associatedtype.Foo"]' 'type Foo'
//@ has - '//*[@id="associatedtype.Bar"]' 'type Bar'
//@ has - '//*[@id="tymethod.f"]' 'fn f()'
//@ has - '//*[@id="tymethod.g"]' 'fn g()'
pub trait Trait {
    #[doc(hidden)]
    type Foo;
    type Bar;
    #[doc(hidden)]
    fn f();
    fn g();
}

//@ has foo/struct.S.html
//@ has - '//*[@id="associatedtype.Foo"]' 'type Foo'
//@ has - '//*[@id="associatedtype.Bar"]' 'type Bar'
//@ has - '//*[@id="method.f"]' 'fn f()'
//@ has - '//*[@id="method.g"]' 'fn g()'
pub struct S;
impl Trait for S {
    type Foo = ();
    type Bar = ();
    fn f() {}
    fn g() {}
}
