Skip to content

Commit 3fd1664

Browse files
committed
Re-add explicit list of traits to tuple docs, with limit notes
1 parent 090c68b commit 3fd1664

File tree

2 files changed

+68
-10
lines changed

2 files changed

+68
-10
lines changed

library/core/src/primitive_docs.rs

+34-5
Original file line numberDiff line numberDiff line change
@@ -916,11 +916,40 @@ mod prim_str {}
916916
///
917917
/// # Trait implementations
918918
///
919-
/// In this documentation the shorthand `(T, ...)` is used to represent all
920-
/// tuples up to length twelve. When that is used, any trait bounds expressed
921-
/// on `T` applies to each field of the tuple independently. Note that this is
922-
/// a convenience notation to avoid repetitive documentation, not valid
923-
/// Rust syntax.
919+
/// In this documentation the shorthand `(T, ...)` is used to represent tuples of varying length.
920+
/// When that is used, any trait bounds expressed on `T` applies to each field of the tuple
921+
/// independently. Note that this is a convenience notation to avoid repetitive documentation,
922+
/// not valid Rust syntax.
923+
///
924+
/// Due to a temporary restriction in Rust’s type system, the following traits are only
925+
/// implemented on tuples of arity 12 or less. In the future, this may change:
926+
///
927+
/// * [`PartialEq`]
928+
/// * [`Eq`]
929+
/// * [`PartialOrd`]
930+
/// * [`Ord`]
931+
/// * [`Debug`]
932+
/// * [`Default`]
933+
/// * [`Hash`]
934+
///
935+
/// [`Debug`]: fmt::Debug
936+
/// [`Hash`]: hash::Hash
937+
///
938+
/// The following traits are implemented for tuples of any length. These traits have
939+
/// implementations that are automatically generated by the compiler, so are not limited by
940+
/// missing language features.
941+
///
942+
/// * [`Clone`]
943+
/// * [`Copy`]
944+
/// * [`Send`]
945+
/// * [`Sync`]
946+
/// * [`Unpin`]
947+
/// * [`UnwindSafe`]
948+
/// * [`RefUnwindSafe`]
949+
///
950+
/// [`Unpin`]: marker::Unpin
951+
/// [`UnwindSafe`]: panic::UnwindSafe
952+
/// [`RefUnwindSafe`]: panic::RefUnwindSafe
924953
///
925954
/// # Examples
926955
///

library/std/src/primitive_docs.rs

+34-5
Original file line numberDiff line numberDiff line change
@@ -916,11 +916,40 @@ mod prim_str {}
916916
///
917917
/// # Trait implementations
918918
///
919-
/// In this documentation the shorthand `(T, ...)` is used to represent all
920-
/// tuples up to length twelve. When that is used, any trait bounds expressed
921-
/// on `T` applies to each field of the tuple independently. Note that this is
922-
/// a convenience notation to avoid repetitive documentation, not valid
923-
/// Rust syntax.
919+
/// In this documentation the shorthand `(T, ...)` is used to represent tuples of varying length.
920+
/// When that is used, any trait bounds expressed on `T` applies to each field of the tuple
921+
/// independently. Note that this is a convenience notation to avoid repetitive documentation,
922+
/// not valid Rust syntax.
923+
///
924+
/// Due to a temporary restriction in Rust’s type system, the following traits are only
925+
/// implemented on tuples of arity 12 or less. In the future, this may change:
926+
///
927+
/// * [`PartialEq`]
928+
/// * [`Eq`]
929+
/// * [`PartialOrd`]
930+
/// * [`Ord`]
931+
/// * [`Debug`]
932+
/// * [`Default`]
933+
/// * [`Hash`]
934+
///
935+
/// [`Debug`]: fmt::Debug
936+
/// [`Hash`]: hash::Hash
937+
///
938+
/// The following traits are implemented for tuples of any length. These traits have
939+
/// implementations that are automatically generated by the compiler, so are not limited by
940+
/// missing language features.
941+
///
942+
/// * [`Clone`]
943+
/// * [`Copy`]
944+
/// * [`Send`]
945+
/// * [`Sync`]
946+
/// * [`Unpin`]
947+
/// * [`UnwindSafe`]
948+
/// * [`RefUnwindSafe`]
949+
///
950+
/// [`Unpin`]: marker::Unpin
951+
/// [`UnwindSafe`]: panic::UnwindSafe
952+
/// [`RefUnwindSafe`]: panic::RefUnwindSafe
924953
///
925954
/// # Examples
926955
///

0 commit comments

Comments
 (0)