summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2017-10-17 22:21:05 +0800
committerGitHub <noreply@github.com>2017-10-17 22:21:05 +0800
commit7f72b311653401226fedeb29bcae484993a14ac0 (patch)
tree6bfe70bf3f8b0a5a32d03bc7fd54bd42a27bd30b /src/libstd
parente72c2a82991b19e199a47881546394860c0af97a (diff)
parent8528508aa0850fa8286fb73503fb93263edaa976 (diff)
downloadrust-7f72b311653401226fedeb29bcae484993a14ac0.tar.gz
rust-7f72b311653401226fedeb29bcae484993a14ac0.zip
Rollup merge of #45339 - xfix:patch-4, r=steveklabnik
Update array documentation for Clone trait changes

Just a note, for this to work, `T` doesn't have to `Copy`, `Clone` is sufficient. For instance, the following works.

```rust
fn x(a: &[String; 100]) -> [String; 100] {
    a.clone()
}
```
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/primitive_docs.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/libstd/primitive_docs.rs b/src/libstd/primitive_docs.rs
index 1edb35d8fe7..9e1da318242 100644
--- a/src/libstd/primitive_docs.rs
+++ b/src/libstd/primitive_docs.rs
@@ -284,7 +284,6 @@ mod prim_pointer { }
 /// Arrays of sizes from 0 to 32 (inclusive) implement the following traits if
 /// the element type allows it:
 ///
-/// - [`Clone`][clone] (only if `T: `[`Copy`][copy])
 /// - [`Debug`][debug]
 /// - [`IntoIterator`][intoiterator] (implemented for `&[T; N]` and `&mut [T; N]`)
 /// - [`PartialEq`][partialeq], [`PartialOrd`][partialord], [`Eq`][eq], [`Ord`][ord]
@@ -299,8 +298,10 @@ mod prim_pointer { }
 /// entirely different types. As a stopgap, trait implementations are
 /// statically generated up to size 32.
 ///
-/// Arrays of *any* size are [`Copy`][copy] if the element type is [`Copy`][copy]. This
-/// works because the [`Copy`][copy] trait is specially known to the compiler.
+/// Arrays of *any* size are [`Copy`][copy] if the element type is [`Copy`][copy]
+/// and [`Clone`][clone] if the element type is [`Clone`][clone]. This works
+/// because [`Copy`][copy] and [`Clone`][clone] traits are specially known
+/// to the compiler.
 ///
 /// Arrays coerce to [slices (`[T]`)][slice], so a slice method may be called on
 /// an array. Indeed, this provides most of the API for working with arrays.