about summary refs log tree commit diff
path: root/tests/rustdoc/impl/doc_auto_cfg_nested_impl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rustdoc/impl/doc_auto_cfg_nested_impl.rs')
-rw-r--r--tests/rustdoc/impl/doc_auto_cfg_nested_impl.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/rustdoc/impl/doc_auto_cfg_nested_impl.rs b/tests/rustdoc/impl/doc_auto_cfg_nested_impl.rs
new file mode 100644
index 00000000000..f85d7b23637
--- /dev/null
+++ b/tests/rustdoc/impl/doc_auto_cfg_nested_impl.rs
@@ -0,0 +1,24 @@
+// Regression test for <https://github.com/rust-lang/rust/issues/101129>.
+
+#![feature(doc_auto_cfg)]
+#![crate_type = "lib"]
+#![crate_name = "foo"]
+
+pub struct S;
+pub trait MyTrait1 {}
+pub trait MyTrait2 {}
+
+//@ has foo/struct.S.html
+//@ has - '//*[@id="impl-MyTrait1-for-S"]//*[@class="stab portability"]' \
+//        'Available on non-crate feature coolstuff only.'
+#[cfg(not(feature = "coolstuff"))]
+impl MyTrait1 for S {}
+
+#[cfg(not(feature = "coolstuff"))]
+mod submod {
+    use crate::{S, MyTrait2};
+    // This impl should also have the `not(feature = "coolstuff")`.
+    //@ has - '//*[@id="impl-MyTrait2-for-S"]//*[@class="stab portability"]' \
+    //        'Available on non-crate feature coolstuff only.'
+    impl MyTrait2 for S {}
+}