We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 0a675c5 + 902aa62 commit 8cb8d9cCopy full SHA for 8cb8d9c
src/libcore/slice/mod.rs
@@ -23,7 +23,6 @@
23
// * The `raw` and `bytes` submodules.
24
// * Boilerplate trait implementations.
25
26
-use crate::borrow::Borrow;
27
use crate::cmp;
28
use crate::cmp::Ordering::{self, Equal, Greater, Less};
29
use crate::fmt;
@@ -2157,14 +2156,16 @@ impl<T> [T] {
2157
2156
/// assert_eq!(buf, vec![1; 10]);
2158
/// ```
2159
#[unstable(feature = "slice_fill", issue = "70758")]
2160
- pub fn fill<V>(&mut self, value: V)
+ pub fn fill(&mut self, value: T)
2161
where
2162
- V: Borrow<T>,
2163
T: Clone,
2164
{
2165
- let value = value.borrow();
2166
- for el in self {
2167
- el.clone_from(value)
+ if let Some((last, elems)) = self.split_last_mut() {
+ for el in elems {
+ el.clone_from(&value);
+ }
+
2168
+ *last = value
2169
}
2170
2171
0 commit comments