about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Huss <eric@huss.org>2025-02-11 12:03:22 -0800
committerEric Huss <eric@huss.org>2025-02-11 13:04:27 -0800
commit8c24c0a023456c3d9e58f06a3abf0a83d335c6f6 (patch)
tree9427e308d91f7cfb3a014c118a8a18afdc42cd8b
parent8c61cd4df8434573190336b8f16169f3c2b22a7a (diff)
downloadrust-8c24c0a023456c3d9e58f06a3abf0a83d335c6f6.tar.gz
rust-8c24c0a023456c3d9e58f06a3abf0a83d335c6f6.zip
Remove the common prelude module
This fixes the issues described in
https://github.com/rust-lang/rust/issues/136102. Primarily, this
resolves some issues with how the documentation for the prelude is
generated:

- It avoids showing "unstable" for macros in the prelude that are
  actually stable.
- Avoids duplication of some pages due to the previous lack of
  `doc(no_inline)`.
- Makes the different edition preludes consistent, and sets a pattern
  that can be used by future editions.

We may need to rearrange these modules in the future if we decide to
remove anything from the prelude again. If we do, I think we should look
into a different solution that avoids the documentation problems.
-rw-r--r--library/core/src/prelude/mod.rs14
-rw-r--r--library/core/src/prelude/v1.rs (renamed from library/core/src/prelude/common.rs)4
-rw-r--r--library/std/src/prelude/mod.rs14
-rw-r--r--library/std/src/prelude/v1.rs (renamed from library/std/src/prelude/common.rs)4
-rw-r--r--tests/rustdoc-js-std/vec-new.js2
5 files changed, 13 insertions, 25 deletions
diff --git a/library/core/src/prelude/mod.rs b/library/core/src/prelude/mod.rs
index 0ab97f5bbd5..590ffd64b5b 100644
--- a/library/core/src/prelude/mod.rs
+++ b/library/core/src/prelude/mod.rs
@@ -9,16 +9,7 @@
 
 #![stable(feature = "core_prelude", since = "1.4.0")]
 
-mod common;
-
-/// The first version of the prelude of The Rust Standard Library.
-///
-/// See the [module-level documentation](self) for more.
-#[stable(feature = "rust1", since = "1.0.0")]
-pub mod v1 {
-    #[stable(feature = "rust1", since = "1.0.0")]
-    pub use super::common::*;
-}
+pub mod v1;
 
 /// The 2015 version of the core prelude.
 ///
@@ -64,7 +55,8 @@ pub mod rust_2021 {
 #[stable(feature = "prelude_2024", since = "1.85.0")]
 pub mod rust_2024 {
     #[stable(feature = "rust1", since = "1.0.0")]
-    pub use super::common::*;
+    #[doc(no_inline)]
+    pub use super::v1::*;
 
     #[stable(feature = "prelude_2021", since = "1.55.0")]
     #[doc(no_inline)]
diff --git a/library/core/src/prelude/common.rs b/library/core/src/prelude/v1.rs
index 8b116cecb52..50fd67e8395 100644
--- a/library/core/src/prelude/common.rs
+++ b/library/core/src/prelude/v1.rs
@@ -1,7 +1,9 @@
-//! Items common to the prelude of all editions.
+//! The first version of the core prelude.
 //!
 //! See the [module-level documentation](super) for more.
 
+#![stable(feature = "core_prelude", since = "1.4.0")]
+
 // No formatting: this file is nothing but re-exports, and their order is worth preserving.
 #![cfg_attr(rustfmt, rustfmt::skip)]
 
diff --git a/library/std/src/prelude/mod.rs b/library/std/src/prelude/mod.rs
index 14e6c2715df..992a9207a72 100644
--- a/library/std/src/prelude/mod.rs
+++ b/library/std/src/prelude/mod.rs
@@ -111,16 +111,7 @@
 
 #![stable(feature = "rust1", since = "1.0.0")]
 
-mod common;
-
-/// The first version of the prelude of The Rust Standard Library.
-///
-/// See the [module-level documentation](self) for more.
-#[stable(feature = "rust1", since = "1.0.0")]
-pub mod v1 {
-    #[stable(feature = "rust1", since = "1.0.0")]
-    pub use super::common::*;
-}
+pub mod v1;
 
 /// The 2015 version of the prelude of The Rust Standard Library.
 ///
@@ -162,7 +153,8 @@ pub mod rust_2021 {
 #[stable(feature = "prelude_2024", since = "1.85.0")]
 pub mod rust_2024 {
     #[stable(feature = "rust1", since = "1.0.0")]
-    pub use super::common::*;
+    #[doc(no_inline)]
+    pub use super::v1::*;
 
     #[stable(feature = "prelude_2024", since = "1.85.0")]
     #[doc(no_inline)]
diff --git a/library/std/src/prelude/common.rs b/library/std/src/prelude/v1.rs
index 0f2d8334fca..5b324b2e916 100644
--- a/library/std/src/prelude/common.rs
+++ b/library/std/src/prelude/v1.rs
@@ -1,7 +1,9 @@
-//! Items common to the prelude of all editions.
+//! The first version of the prelude of The Rust Standard Library.
 //!
 //! See the [module-level documentation](super) for more.
 
+#![stable(feature = "rust1", since = "1.0.0")]
+
 // No formatting: this file is nothing but re-exports, and their order is worth preserving.
 #![cfg_attr(rustfmt, rustfmt::skip)]
 
diff --git a/tests/rustdoc-js-std/vec-new.js b/tests/rustdoc-js-std/vec-new.js
index bb122ff4398..0eae8b6c197 100644
--- a/tests/rustdoc-js-std/vec-new.js
+++ b/tests/rustdoc-js-std/vec-new.js
@@ -9,7 +9,7 @@ const EXPECTED = [
     {
         'query': 'prelude::vec',
         'others': [
-            { 'path': 'std::prelude::rust_2024', 'name': 'Vec' },
+            { 'path': 'std::prelude::v1', 'name': 'Vec' },
         ],
     },
     {