Improve rendering of crate features via doc(cfg)

This commit is contained in:
Wim Looman 2020-08-09 13:25:18 +02:00
parent f50f1c8e17
commit a8de713e26
2 changed files with 12 additions and 5 deletions

View file

@ -413,6 +413,13 @@ impl<'a> fmt::Display for Html<'a> {
return write!(fmt, "target feature <code>{}</code>", feat);
}
}
(sym::feature, Some(feat)) => {
if self.1 {
return write!(fmt, "<code>{}</code>", feat);
} else {
return write!(fmt, "crate feature <code>{}</code>", feat);
}
}
_ => "",
};
if !human_readable.is_empty() {

View file

@ -4,13 +4,13 @@
#![feature(doc_cfg)]
// @has 'foo/struct.Foo.html'
// @has '-' '//*[@class="stab portability"]' 'This is supported on feature="sync" only.'
// @has '-' '//*[@class="stab portability"]' 'This is supported on crate feature sync only.'
#[doc(cfg(feature = "sync"))]
#[doc(cfg(feature = "sync"))]
pub struct Foo;
// @has 'foo/bar/struct.Bar.html'
// @has '-' '//*[@class="stab portability"]' 'This is supported on feature="sync" only.'
// @has '-' '//*[@class="stab portability"]' 'This is supported on crate feature sync only.'
#[doc(cfg(feature = "sync"))]
pub mod bar {
#[doc(cfg(feature = "sync"))]
@ -18,7 +18,7 @@ pub mod bar {
}
// @has 'foo/baz/struct.Baz.html'
// @has '-' '//*[@class="stab portability"]' 'This is supported on feature="sync" and feature="send" only.'
// @has '-' '//*[@class="stab portability"]' 'This is supported on crate feature sync and crate feature send only.'
#[doc(cfg(all(feature = "sync", feature = "send")))]
pub mod baz {
#[doc(cfg(feature = "sync"))]
@ -26,7 +26,7 @@ pub mod baz {
}
// @has 'foo/qux/struct.Qux.html'
// @has '-' '//*[@class="stab portability"]' 'This is supported on feature="sync" and feature="send" only.'
// @has '-' '//*[@class="stab portability"]' 'This is supported on crate feature sync and crate feature send only.'
#[doc(cfg(feature = "sync"))]
pub mod qux {
#[doc(cfg(all(feature = "sync", feature = "send")))]
@ -34,7 +34,7 @@ pub mod qux {
}
// @has 'foo/quux/struct.Quux.html'
// @has '-' '//*[@class="stab portability"]' 'This is supported on feature="sync" and feature="send" and foo and bar only.'
// @has '-' '//*[@class="stab portability"]' 'This is supported on crate feature sync and crate feature send and foo and bar only.'
#[doc(cfg(all(feature = "sync", feature = "send", foo)))]
pub mod quux {
#[doc(cfg(all(feature = "send", feature = "sync", bar)))]