rust/tests/rustdoc/duplicate-cfg.rs
2024-06-24 11:08:41 +02:00

54 lines
2.0 KiB
Rust

#![crate_name = "foo"]
#![feature(doc_cfg)]
//@ has 'foo/index.html'
//@ matches '-' '//*[@class="item-name"]//*[@class="stab portability"]' '^sync$'
//@ has '-' '//*[@class="item-name"]//*[@class="stab portability"]/@title' 'Available on crate feature `sync` only'
//@ has 'foo/struct.Foo.html'
//@ has '-' '//*[@class="stab portability"]' 'sync'
#[doc(cfg(feature = "sync"))]
#[doc(cfg(feature = "sync"))]
/// my feature sync struct
pub struct Foo;
//@ has 'foo/bar/index.html'
//@ has '-' '//*[@class="stab portability"]' 'Available on crate feature sync only.'
#[doc(cfg(feature = "sync"))]
pub mod bar {
//@ has 'foo/bar/struct.Bar.html'
//@ has '-' '//*[@class="stab portability"]' 'Available on crate feature sync only.'
#[doc(cfg(feature = "sync"))]
pub struct Bar;
}
//@ has 'foo/baz/index.html'
//@ has '-' '//*[@class="stab portability"]' 'Available on crate features sync and send only.'
#[doc(cfg(all(feature = "sync", feature = "send")))]
pub mod baz {
//@ has 'foo/baz/struct.Baz.html'
//@ has '-' '//*[@class="stab portability"]' 'Available on crate features sync and send only.'
#[doc(cfg(feature = "sync"))]
pub struct Baz;
}
//@ has 'foo/qux/index.html'
//@ has '-' '//*[@class="stab portability"]' 'Available on crate feature sync only.'
#[doc(cfg(feature = "sync"))]
pub mod qux {
//@ has 'foo/qux/struct.Qux.html'
//@ has '-' '//*[@class="stab portability"]' 'Available on crate features sync and send only.'
#[doc(cfg(all(feature = "sync", feature = "send")))]
pub struct Qux;
}
//@ has 'foo/quux/index.html'
//@ has '-' '//*[@class="stab portability"]' 'Available on crate feature sync and crate feature send and foo only.'
#[doc(cfg(all(feature = "sync", feature = "send", foo)))]
pub mod quux {
//@ has 'foo/quux/struct.Quux.html'
//@ has '-' '//*[@class="stab portability"]' 'Available on crate feature sync and crate feature send and foo and bar only.'
#[doc(cfg(all(feature = "send", feature = "sync", bar)))]
pub struct Quux;
}