diff --git a/library/core/src/primitive_docs.rs b/library/core/src/primitive_docs.rs index a02c54c07bc9d..be3953692fa31 100644 --- a/library/core/src/primitive_docs.rs +++ b/library/core/src/primitive_docs.rs @@ -916,11 +916,40 @@ mod prim_str {} /// /// # Trait implementations /// -/// In this documentation the shorthand `(T, ...)` is used to represent all -/// tuples up to length twelve. When that is used, any trait bounds expressed -/// on `T` applies to each field of the tuple independently. Note that this is -/// a convenience notation to avoid repetitive documentation, not valid -/// Rust syntax. +/// In this documentation the shorthand `(T, ...)` is used to represent tuples of varying length. +/// When that is used, any trait bounds expressed on `T` applies to each field of the tuple +/// independently. Note that this is a convenience notation to avoid repetitive documentation, +/// not valid Rust syntax. +/// +/// Due to a temporary restriction in Rust’s type system, the following traits are only +/// implemented on tuples of arity 12 or less. In the future, this may change: +/// +/// * [`PartialEq`] +/// * [`Eq`] +/// * [`PartialOrd`] +/// * [`Ord`] +/// * [`Debug`] +/// * [`Default`] +/// * [`Hash`] +/// +/// [`Debug`]: fmt::Debug +/// [`Hash`]: hash::Hash +/// +/// The following traits are implemented for tuples of any length. These traits have +/// implementations that are automatically generated by the compiler, so are not limited by +/// missing language features. +/// +/// * [`Clone`] +/// * [`Copy`] +/// * [`Send`] +/// * [`Sync`] +/// * [`Unpin`] +/// * [`UnwindSafe`] +/// * [`RefUnwindSafe`] +/// +/// [`Unpin`]: marker::Unpin +/// [`UnwindSafe`]: panic::UnwindSafe +/// [`RefUnwindSafe`]: panic::RefUnwindSafe /// /// # Examples /// diff --git a/library/std/src/primitive_docs.rs b/library/std/src/primitive_docs.rs index a02c54c07bc9d..be3953692fa31 100644 --- a/library/std/src/primitive_docs.rs +++ b/library/std/src/primitive_docs.rs @@ -916,11 +916,40 @@ mod prim_str {} /// /// # Trait implementations /// -/// In this documentation the shorthand `(T, ...)` is used to represent all -/// tuples up to length twelve. When that is used, any trait bounds expressed -/// on `T` applies to each field of the tuple independently. Note that this is -/// a convenience notation to avoid repetitive documentation, not valid -/// Rust syntax. +/// In this documentation the shorthand `(T, ...)` is used to represent tuples of varying length. +/// When that is used, any trait bounds expressed on `T` applies to each field of the tuple +/// independently. Note that this is a convenience notation to avoid repetitive documentation, +/// not valid Rust syntax. +/// +/// Due to a temporary restriction in Rust’s type system, the following traits are only +/// implemented on tuples of arity 12 or less. In the future, this may change: +/// +/// * [`PartialEq`] +/// * [`Eq`] +/// * [`PartialOrd`] +/// * [`Ord`] +/// * [`Debug`] +/// * [`Default`] +/// * [`Hash`] +/// +/// [`Debug`]: fmt::Debug +/// [`Hash`]: hash::Hash +/// +/// The following traits are implemented for tuples of any length. These traits have +/// implementations that are automatically generated by the compiler, so are not limited by +/// missing language features. +/// +/// * [`Clone`] +/// * [`Copy`] +/// * [`Send`] +/// * [`Sync`] +/// * [`Unpin`] +/// * [`UnwindSafe`] +/// * [`RefUnwindSafe`] +/// +/// [`Unpin`]: marker::Unpin +/// [`UnwindSafe`]: panic::UnwindSafe +/// [`RefUnwindSafe`]: panic::RefUnwindSafe /// /// # Examples ///