about summary refs log tree commit diff
path: root/src/test/rustdoc
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-09-01 21:37:20 +0200
committerGitHub <noreply@github.com>2022-09-01 21:37:20 +0200
commit8f8a5d2723f061aa863d2897c2b6cecae2b0ceba (patch)
tree1a8bd41b8e0eb912e8eb57a764fbcf055ee03c70 /src/test/rustdoc
parente9df5ddda26702e8c2ce21558a9a332153362931 (diff)
parent68d0094305b4bebb96ef9d4c111fca256c1b0b4f (diff)
downloadrust-8f8a5d2723f061aa863d2897c2b6cecae2b0ceba.tar.gz
rust-8f8a5d2723f061aa863d2897c2b6cecae2b0ceba.zip
Rollup merge of #101279 - GuillaumeGomez:doc_auto_cfg_nested_impl, r=notriddle
Fix doc_auto_cfg for impl blocks in different modules with different `cfg`

Fixes #101129.

Just like reexports, impl blocks don't necessarily share the same "space" as the item they implement so we need to merge attributes from its parents as well.

r? `@notriddle`
Diffstat (limited to 'src/test/rustdoc')
-rw-r--r--src/test/rustdoc/doc_auto_cfg_nested_impl.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/rustdoc/doc_auto_cfg_nested_impl.rs b/src/test/rustdoc/doc_auto_cfg_nested_impl.rs
new file mode 100644
index 00000000000..4d73e0d829a
--- /dev/null
+++ b/src/test/rustdoc/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 {}
+}