From 9f1abe89b819c3ee919f906a256fe7e2487bdd54 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sat, 27 Feb 2021 22:02:41 +0100 Subject: [PATCH 1/4] Run some rustc passes in rustdoc --- src/librustdoc/core.rs | 1 + src/librustdoc/lib.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index f0b3159f737..1625acafb5c 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -492,6 +492,7 @@ crate fn run_global_ctxt( tcx.ensure().check_mod_attrs(module); } }); + rustc_passes::stability::check_unused_or_stable_features(tcx); let access_levels = tcx.privacy_access_levels(LOCAL_CRATE); // Convert from a HirId set to a DefId set since we don't always have easy access diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs index 2342ed3ab67..4b1b2252bb5 100644 --- a/src/librustdoc/lib.rs +++ b/src/librustdoc/lib.rs @@ -49,6 +49,7 @@ extern crate rustc_metadata; extern crate rustc_middle; extern crate rustc_mir; extern crate rustc_parse; +extern crate rustc_passes; extern crate rustc_resolve; extern crate rustc_session; extern crate rustc_span as rustc_span; From 25e030bc4252bd23e1bed60dfbaca8a0ce7206bb Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sat, 27 Feb 2021 18:36:15 +0100 Subject: [PATCH 2/4] Add test for rustdoc new check pass --- src/test/rustdoc-ui/rustc-check-passes.rs | 4 ++++ src/test/rustdoc-ui/rustc-check-passes.stderr | 9 +++++++++ 2 files changed, 13 insertions(+) create mode 100644 src/test/rustdoc-ui/rustc-check-passes.rs create mode 100644 src/test/rustdoc-ui/rustc-check-passes.stderr diff --git a/src/test/rustdoc-ui/rustc-check-passes.rs b/src/test/rustdoc-ui/rustc-check-passes.rs new file mode 100644 index 00000000000..731cc8ba617 --- /dev/null +++ b/src/test/rustdoc-ui/rustc-check-passes.rs @@ -0,0 +1,4 @@ +#![feature(box_syntax)] +#![feature(box_syntax)] //~ ERROR + +pub fn foo() {} diff --git a/src/test/rustdoc-ui/rustc-check-passes.stderr b/src/test/rustdoc-ui/rustc-check-passes.stderr new file mode 100644 index 00000000000..9707895ff3d --- /dev/null +++ b/src/test/rustdoc-ui/rustc-check-passes.stderr @@ -0,0 +1,9 @@ +error[E0636]: the feature `box_syntax` has already been declared + --> $DIR/rustc-check-passes.rs:2:12 + | +LL | #![feature(box_syntax)] + | ^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0636`. From 5ab4d46e9ada163f7f6025500313d2b51c87f657 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sat, 27 Feb 2021 22:17:31 +0100 Subject: [PATCH 3/4] Update rustdoc test to make it work with newly added rustc passes --- src/test/rustdoc/implementor-stable-version.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/rustdoc/implementor-stable-version.rs b/src/test/rustdoc/implementor-stable-version.rs index 0a065d8095b..a1f3fd5a8c5 100644 --- a/src/test/rustdoc/implementor-stable-version.rs +++ b/src/test/rustdoc/implementor-stable-version.rs @@ -1,3 +1,4 @@ +#![stable(feature = "bar", since = "OLD 1.0")] #![crate_name = "foo"] #![feature(staged_api)] @@ -8,6 +9,7 @@ pub trait Bar {} #[stable(feature = "baz", since = "OLD 1.0")] pub trait Baz {} +#[stable(feature = "baz", since = "OLD 1.0")] pub struct Foo; // @has foo/trait.Bar.html '//div[@id="implementors-list"]//span[@class="since"]' 'NEW 2.0' From d20fd62d7020162623c89b0ae984b8ad58c59a46 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Sun, 28 Feb 2021 00:48:22 +0100 Subject: [PATCH 4/4] Add missing stability attributes in libstd --- library/std/src/os/mod.rs | 1 + library/std/src/sys/mod.rs | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/library/std/src/os/mod.rs b/library/std/src/os/mod.rs index 500e8267cf8..31e39b5ad04 100644 --- a/library/std/src/os/mod.rs +++ b/library/std/src/os/mod.rs @@ -23,6 +23,7 @@ pub use crate::sys::windows_ext as windows; pub mod linux; #[cfg(doc)] +#[stable(feature = "wasi_ext_doc", since = "1.35.0")] pub use crate::sys::wasi_ext as wasi; // If we're not documenting libstd then we just expose the main modules as we otherwise would. diff --git a/library/std/src/sys/mod.rs b/library/std/src/sys/mod.rs index d3f53801d2d..1e79a5c3f9b 100644 --- a/library/std/src/sys/mod.rs +++ b/library/std/src/sys/mod.rs @@ -111,7 +111,7 @@ cfg_if::cfg_if! { cfg_if::cfg_if! { if #[cfg(target_os = "wasi")] { // On WASI we'll document what's already available - #[stable(feature = "rust1", since = "1.0.0")] + #[stable(feature = "wasi_ext_doc", since = "1.35.0")] pub use self::ext as wasi_ext; } else if #[cfg(any(target_os = "hermit", target_arch = "wasm32", @@ -125,6 +125,7 @@ cfg_if::cfg_if! { } else { // On other platforms like Windows document the bare bones of WASI #[path = "wasi/ext/mod.rs"] + #[stable(feature = "wasi_ext_doc", since = "1.35.0")] pub mod wasi_ext; } }