about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-09-19 04:20:56 +0000
committerbors <bors@rust-lang.org>2017-09-19 04:20:56 +0000
commit9a00f3cc306f2f79bfbd54f1986d8ca7a74f6661 (patch)
treef1ce101bf0f70075ec37e492104a6a4ed62e7baa /src/libstd
parent06bb0e01be7e6774caff3dccf7e60a8f321cc586 (diff)
parent64f61113ebdc32ba5f9898fe191ca84fba6eeb94 (diff)
downloadrust-9a00f3cc306f2f79bfbd54f1986d8ca7a74f6661.tar.gz
rust-9a00f3cc306f2f79bfbd54f1986d8ca7a74f6661.zip
Auto merge of #44026 - QuietMisdreavus:trimmed-std, r=steveklabnik
hide internal types/traits from std docs via new #[doc(masked)] attribute

Fixes #43701 (hopefully for good this time)

This PR introduces a new parameter to the `#[doc]` attribute that rustdoc looks for on `extern crate` statements. When it sees `#[doc(masked)]` on such a statement, it hides traits and types from that crate from appearing in either the "Trait Implementations" section of many type pages, or the "Implementors" section of trait pages. This is then applied to the `libc`/`rand`/`compiler_builtins` imports in libstd to prevent those crates from creating broken links in the std docs.

Like in #43348, this also introduces a feature gate, `doc_masked`, that controls the use of this parameter.

To view the std docs generated with this change, head to https://tonberry.quietmisdreavus.net/std-43701/std/index.html.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/lib.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index a3eecd46e90..9fc7e2c01aa 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -314,6 +314,7 @@
 #![feature(unwind_attributes)]
 #![feature(vec_push_all)]
 #![feature(doc_cfg)]
+#![feature(doc_masked)]
 #![cfg_attr(test, feature(update_panic_count))]
 
 #![cfg_attr(not(stage0), feature(const_max_value))]
@@ -359,19 +360,24 @@ use prelude::v1::*;
                  debug_assert_ne, unreachable, unimplemented, write, writeln, try)]
 extern crate core as __core;
 
-#[allow(deprecated)] extern crate rand as core_rand;
+#[doc(masked)]
+#[allow(deprecated)]
+extern crate rand as core_rand;
 #[macro_use]
 #[macro_reexport(vec, format)]
 extern crate alloc;
 extern crate alloc_system;
 extern crate std_unicode;
+#[doc(masked)]
 extern crate libc;
 
 // We always need an unwinder currently for backtraces
+#[doc(masked)]
 #[allow(unused_extern_crates)]
 extern crate unwind;
 
 // compiler-rt intrinsics
+#[doc(masked)]
 extern crate compiler_builtins;
 
 // During testing, this crate is not actually the "real" std library, but rather