Skip to content

Commit fec23d9

Browse files
committed
Auto merge of #27168 - brson:stdprim, r=steveklabnik
This makes the primitive descriptions on the front page read properly as descriptions of types and not of the associated modules. Having the primitive and module docs derived from the same source causes problems, primarily that they can't contain hyperlinks cross-referencing each other. This crates dedicated private modules in `std` to document the primitive types, then for all primitives that have a corresponding module, puts hyperlinks in moth the primitive docs and the module docs cross-linking each other. This should help clear up confusion when readers find themselves on the wrong page. This also removes all the duplicate `#[doc(primitive)]` tags in various places (especially core), so the core docs will no longer attempt to document the primitives for now. Seems like an acceptable tradeoff to get some cleanup for std.
2 parents 2afe47d + 778c89c commit fec23d9

40 files changed

+478
-344
lines changed

src/libcollections/slice.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
//! Utilities for slice manipulation
11+
//! A dynamically-sized view into a contiguous sequence, `[T]`.
1212
//!
13-
//! The `slice` module contains useful code to help work with slice values.
1413
//! Slices are a view into a block of memory represented as a pointer and a
1514
//! length.
1615
//!
@@ -78,7 +77,8 @@
7877
//! iterators.
7978
//! * Further methods that return iterators are `.split()`, `.splitn()`,
8079
//! `.chunks()`, `.windows()` and more.
81-
#![doc(primitive = "slice")]
80+
//!
81+
//! *[See also the slice primitive type](../primitive.slice.html).*
8282
#![stable(feature = "rust1", since = "1.0.0")]
8383

8484
// Many of the usings in this module are only used in the test configuration.

src/libcollections/str.rs

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,43 +8,11 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
//! Unicode string manipulation (the `str` type).
11+
//! Unicode string slices
1212
//!
13-
//! Rust's `str` type is one of the core primitive types of the language. `&str`
14-
//! is the borrowed string type. This type of string can only be created from
15-
//! other strings, unless it is a `&'static str` (see below). It is not possible
16-
//! to move out of borrowed strings because they are owned elsewhere.
17-
//!
18-
//! # Examples
19-
//!
20-
//! Here's some code that uses a `&str`:
21-
//!
22-
//! ```
23-
//! let s = "Hello, world.";
24-
//! ```
25-
//!
26-
//! This `&str` is a `&'static str`, which is the type of string literals.
27-
//! They're `'static` because literals are available for the entire lifetime of
28-
//! the program.
29-
//!
30-
//! You can get a non-`'static` `&str` by taking a slice of a `String`:
31-
//!
32-
//! ```
33-
//! let some_string = "Hello, world.".to_string();
34-
//! let s = &some_string;
35-
//! ```
36-
//!
37-
//! # Representation
38-
//!
39-
//! Rust's string type, `str`, is a sequence of Unicode scalar values encoded as
40-
//! a stream of UTF-8 bytes. All [strings](../../reference.html#literals) are
41-
//! guaranteed to be validly encoded UTF-8 sequences. Additionally, strings are
42-
//! not null-terminated and can thus contain null bytes.
43-
//!
44-
//! The actual representation of `str`s have direct mappings to slices: `&str`
45-
//! is the same as `&[u8]`.
13+
//! *[See also the `str` primitive type](../primitive.str.html).*
14+
4615

47-
#![doc(primitive = "str")]
4816
#![stable(feature = "rust1", since = "1.0.0")]
4917

5018
// Many of the usings in this module are only used in the test configuration.

src/libcore/array.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111
//! Implementations of things like `Eq` for fixed-length arrays
1212
//! up to a certain length. Eventually we should able to generalize
1313
//! to all lengths.
14+
//!
15+
//! *[See also the array primitive type](../primitive.array.html).*
1416
15-
#![doc(primitive = "array")]
1617
#![unstable(feature = "fixed_size_array",
1718
reason = "traits and impls are better expressed through generic \
1819
integer constants")]

src/libcore/char.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
//! For more details, see ::rustc_unicode::char (a.k.a. std::char)
1414
1515
#![allow(non_snake_case)]
16-
#![doc(primitive = "char")]
1716
#![stable(feature = "core_char", since = "1.2.0")]
1817

1918
use iter::Iterator;

src/libcore/lib.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,6 @@ pub mod str;
154154
pub mod hash;
155155
pub mod fmt;
156156

157-
#[doc(primitive = "bool")]
158-
mod bool {
159-
}
160-
161157
// note: does not need to be public
162158
mod tuple;
163159

src/libcore/num/f32.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
//! Operations and constants for 32-bits floats (`f32` type)
1212
13-
#![doc(primitive = "f32")]
1413
// FIXME: MIN_VALUE and MAX_VALUE literals are parsed as -inf and inf #14353
1514
#![allow(overflowing_literals)]
1615

src/libcore/num/f64.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
//! Operations and constants for 64-bits floats (`f64` type)
1212
13-
#![doc(primitive = "f64")]
1413
// FIXME: MIN_VALUE and MAX_VALUE literals are parsed as -inf and inf #14353
1514
#![allow(overflowing_literals)]
1615

src/libcore/num/i16.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,5 @@
1111
//! Operations and constants for signed 16-bits integers (`i16` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14-
#![doc(primitive = "i16")]
1514

1615
int_module! { i16, 16 }

src/libcore/num/i32.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,5 @@
1111
//! Operations and constants for signed 32-bits integers (`i32` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14-
#![doc(primitive = "i32")]
1514

1615
int_module! { i32, 32 }

src/libcore/num/i64.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,5 @@
1111
//! Operations and constants for signed 64-bits integers (`i64` type)
1212
1313
#![stable(feature = "rust1", since = "1.0.0")]
14-
#![doc(primitive = "i64")]
1514

1615
int_module! { i64, 64 }

0 commit comments

Comments
 (0)