Skip to content

Commit 8497c42

Browse files
committed
std: Create separate docs for the primitives
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.
1 parent 44dd247 commit 8497c42

40 files changed

+461
-327
lines changed

src/libcollections/slice.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
//! 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: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,41 +10,9 @@
1010

1111
//! 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)