//@ 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() {}
}
