about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume.gomez@huawei.com>2023-06-27 13:12:56 +0200
committerGuillaume Gomez <guillaume.gomez@huawei.com>2023-11-22 17:22:29 +0100
commit7953d5df0e5b2d335005b9a88b61dfde65e9bf73 (patch)
tree4fb716a93aa84c56d5c74883e091b7bef8b33a63
parent14ed92c33f2505241001e06c6d34f1c7d538fb66 (diff)
downloadrust-7953d5df0e5b2d335005b9a88b61dfde65e9bf73.tar.gz
rust-7953d5df0e5b2d335005b9a88b61dfde65e9bf73.zip
Add regression test for cfg merging on re-exports
-rw-r--r--tests/rustdoc/reexport-cfg.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/rustdoc/reexport-cfg.rs b/tests/rustdoc/reexport-cfg.rs
new file mode 100644
index 00000000000..a6179fad873
--- /dev/null
+++ b/tests/rustdoc/reexport-cfg.rs
@@ -0,0 +1,30 @@
+// This test ensures that only the re-export `cfg` will be displayed and that it won't
+// include `cfg`s from the previous chained items.
+
+#![crate_name = "foo"]
+#![feature(doc_auto_cfg, doc_cfg)]
+
+mod foo {
+    #[cfg(not(feature = "foo"))]
+    pub struct Bar;
+
+    #[doc(cfg(not(feature = "bar")))]
+    pub struct Bar2;
+}
+
+// @has 'foo/index.html'
+// @has - '//*[@class="item-name"]' 'BabarNon-lie'
+#[cfg(not(feature = "lie"))]
+pub use crate::foo::Bar as Babar;
+
+// @has - '//*[@class="item-name"]' 'Babar2Non-cake'
+#[doc(cfg(not(feature = "cake")))]
+pub use crate::foo::Bar2 as Babar2;
+
+// @has - '//*[@class="item-table"]/li' 'pub use crate::Babar as Elephant;Non-robot'
+#[cfg(not(feature = "robot"))]
+pub use crate::Babar as Elephant;
+
+// @has - '//*[@class="item-table"]/li' 'pub use crate::Babar2 as Elephant2;Non-cat'
+#[doc(cfg(not(feature = "cat")))]
+pub use crate::Babar2 as Elephant2;