about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/core/src/primitive_docs.rs39
-rw-r--r--library/std/src/primitive_docs.rs39
2 files changed, 68 insertions, 10 deletions
diff --git a/library/core/src/primitive_docs.rs b/library/core/src/primitive_docs.rs
index a02c54c07bc..be3953692fa 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 a02c54c07bc..be3953692fa 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
 ///