Auto merge of #31932 - Manishearth:rollup, r=Manishearth
- Successful merges: #31909, #31918, #31922, #31926, #31928, #31929, #31930 - Failed merges:
This commit is contained in:
commit
acdd3b9f5a
5 changed files with 49 additions and 20 deletions
|
@ -75,8 +75,8 @@ Libraries
|
||||||
improved by using `memchr` to search for newlines][1.7m].
|
improved by using `memchr` to search for newlines][1.7m].
|
||||||
* [`f32::to_degrees` and `f32::to_radians` are stable][1.7f]. The
|
* [`f32::to_degrees` and `f32::to_radians` are stable][1.7f]. The
|
||||||
`f64` variants were stabilized previously.
|
`f64` variants were stabilized previously.
|
||||||
* [`BTreeMap` was rewritten to use less memory improve performance of
|
* [`BTreeMap` was rewritten to use less memory and improve the performance
|
||||||
insertion and iteration, the latter by as much as 5x`][1.7bm].
|
of insertion and iteration, the latter by as much as 5x`][1.7bm].
|
||||||
* [`BTreeSet` and its iterators, `Iter`, `IntoIter`, and `Range` are
|
* [`BTreeSet` and its iterators, `Iter`, `IntoIter`, and `Range` are
|
||||||
covariant over their contained type][1.7bt].
|
covariant over their contained type][1.7bt].
|
||||||
* [`LinkedList` and its iterators, `Iter` and `IntoIter` are covariant
|
* [`LinkedList` and its iterators, `Iter` and `IntoIter` are covariant
|
||||||
|
|
|
@ -3040,7 +3040,7 @@ the case of a `while` loop, the head is the conditional expression controlling
|
||||||
the loop. In the case of a `for` loop, the head is the call-expression
|
the loop. In the case of a `for` loop, the head is the call-expression
|
||||||
controlling the loop. If the label is present, then `continue 'foo` returns
|
controlling the loop. If the label is present, then `continue 'foo` returns
|
||||||
control to the head of the loop with label `'foo`, which need not be the
|
control to the head of the loop with label `'foo`, which need not be the
|
||||||
innermost label enclosing the `break` expression, but must enclose it.
|
innermost label enclosing the `continue` expression, but must enclose it.
|
||||||
|
|
||||||
A `continue` expression is only permitted in the body of a loop.
|
A `continue` expression is only permitted in the body of a loop.
|
||||||
|
|
||||||
|
|
|
@ -267,9 +267,11 @@ impl str {
|
||||||
/// Converts a string slice to a raw pointer.
|
/// Converts a string slice to a raw pointer.
|
||||||
///
|
///
|
||||||
/// As string slices are a slice of bytes, the raw pointer points to a
|
/// As string slices are a slice of bytes, the raw pointer points to a
|
||||||
/// `u8`. This pointer will be pointing to the first byte of the string
|
/// [`u8`]. This pointer will be pointing to the first byte of the string
|
||||||
/// slice.
|
/// slice.
|
||||||
///
|
///
|
||||||
|
/// [`u8`]: primitive.u8.html
|
||||||
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// Basic usage:
|
/// Basic usage:
|
||||||
|
@ -661,7 +663,7 @@ impl str {
|
||||||
/// assert_eq!(None, chars.next());
|
/// assert_eq!(None, chars.next());
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// Remember, `char`s may not match your human intuition about characters:
|
/// Remember, [`char`]s may not match your human intuition about characters:
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// let y = "y̆";
|
/// let y = "y̆";
|
||||||
|
@ -678,16 +680,18 @@ impl str {
|
||||||
pub fn chars(&self) -> Chars {
|
pub fn chars(&self) -> Chars {
|
||||||
core_str::StrExt::chars(self)
|
core_str::StrExt::chars(self)
|
||||||
}
|
}
|
||||||
/// Returns an iterator over the `char`s of a string slice, and their
|
/// Returns an iterator over the [`char`]s of a string slice, and their
|
||||||
/// positions.
|
/// positions.
|
||||||
///
|
///
|
||||||
/// As a string slice consists of valid UTF-8, we can iterate through a
|
/// As a string slice consists of valid UTF-8, we can iterate through a
|
||||||
/// string slice by `char`. This method returns an iterator of both
|
/// string slice by [`char`]. This method returns an iterator of both
|
||||||
/// these `char`s, as well as their byte positions.
|
/// these [`char`]s, as well as their byte positions.
|
||||||
///
|
///
|
||||||
/// The iterator yields tuples. The position is first, the `char` is
|
/// The iterator yields tuples. The position is first, the [`char`] is
|
||||||
/// second.
|
/// second.
|
||||||
///
|
///
|
||||||
|
/// [`char`]: primitive.char.html
|
||||||
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// Basic usage:
|
/// Basic usage:
|
||||||
|
@ -711,7 +715,7 @@ impl str {
|
||||||
/// assert_eq!(None, char_indices.next());
|
/// assert_eq!(None, char_indices.next());
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// Remember, `char`s may not match your human intuition about characters:
|
/// Remember, [`char`]s may not match your human intuition about characters:
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// let y = "y̆";
|
/// let y = "y̆";
|
||||||
|
@ -918,12 +922,13 @@ impl str {
|
||||||
/// Returns the byte index of the first character of this string slice that
|
/// Returns the byte index of the first character of this string slice that
|
||||||
/// matches the pattern.
|
/// matches the pattern.
|
||||||
///
|
///
|
||||||
/// Returns `None` if the pattern doesn't match.
|
/// Returns [`None`] if the pattern doesn't match.
|
||||||
///
|
///
|
||||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
||||||
/// a character matches.
|
/// a character matches.
|
||||||
///
|
///
|
||||||
/// [`char`]: primitive.char.html
|
/// [`char`]: primitive.char.html
|
||||||
|
/// [`None`]: option/enum.Option.html#variant.None
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
|
@ -962,12 +967,13 @@ impl str {
|
||||||
/// Returns the byte index of the last character of this string slice that
|
/// Returns the byte index of the last character of this string slice that
|
||||||
/// matches the pattern.
|
/// matches the pattern.
|
||||||
///
|
///
|
||||||
/// Returns `None` if the pattern doesn't match.
|
/// Returns [`None`] if the pattern doesn't match.
|
||||||
///
|
///
|
||||||
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
/// The pattern can be a `&str`, [`char`], or a closure that determines if
|
||||||
/// a character matches.
|
/// a character matches.
|
||||||
///
|
///
|
||||||
/// [`char`]: primitive.char.html
|
/// [`char`]: primitive.char.html
|
||||||
|
/// [`None`]: option/enum.Option.html#variant.None
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
|
@ -1187,14 +1193,18 @@ impl str {
|
||||||
/// An iterator over substrings of `self`, separated by characters
|
/// An iterator over substrings of `self`, separated by characters
|
||||||
/// matched by a pattern and yielded in reverse order.
|
/// matched by a pattern and yielded in reverse order.
|
||||||
///
|
///
|
||||||
/// The pattern can be a simple `&str`, `char`, or a closure that
|
/// The pattern can be a simple `&str`, [`char`], or a closure that
|
||||||
/// determines the split.
|
/// determines the split.
|
||||||
/// Additional libraries might provide more complex patterns like
|
/// Additional libraries might provide more complex patterns like
|
||||||
/// regular expressions.
|
/// regular expressions.
|
||||||
///
|
///
|
||||||
/// Equivalent to `split`, except that the trailing substring is
|
/// [`char`]: primitive.char.html
|
||||||
|
///
|
||||||
|
/// Equivalent to [`split()`], except that the trailing substring is
|
||||||
/// skipped if empty.
|
/// skipped if empty.
|
||||||
///
|
///
|
||||||
|
/// [`split()`]: #method.split
|
||||||
|
///
|
||||||
/// This method can be used for string data that is _terminated_,
|
/// This method can be used for string data that is _terminated_,
|
||||||
/// rather than _separated_ by a pattern.
|
/// rather than _separated_ by a pattern.
|
||||||
///
|
///
|
||||||
|
@ -1457,7 +1467,7 @@ impl str {
|
||||||
/// # Iterator behavior
|
/// # Iterator behavior
|
||||||
///
|
///
|
||||||
/// The returned iterator requires that the pattern supports a reverse
|
/// The returned iterator requires that the pattern supports a reverse
|
||||||
/// search, and it will be a `[DoubleEndedIterator]` if a forward/reverse
|
/// search, and it will be a [`DoubleEndedIterator`] if a forward/reverse
|
||||||
/// search yields the same elements.
|
/// search yields the same elements.
|
||||||
///
|
///
|
||||||
/// [`DoubleEndedIterator`]: iter/trait.DoubleEndedIterator.html
|
/// [`DoubleEndedIterator`]: iter/trait.DoubleEndedIterator.html
|
||||||
|
@ -1694,9 +1704,11 @@ impl str {
|
||||||
///
|
///
|
||||||
/// # Errors
|
/// # Errors
|
||||||
///
|
///
|
||||||
/// Will return `Err` if it's not possible to parse this string slice into
|
/// Will return [`Err`] if it's not possible to parse this string slice into
|
||||||
/// the desired type.
|
/// the desired type.
|
||||||
///
|
///
|
||||||
|
/// [`Err`]: str/trait.FromStr.html#associatedtype.Err
|
||||||
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
///
|
///
|
||||||
/// Basic usage
|
/// Basic usage
|
||||||
|
@ -1707,7 +1719,7 @@ impl str {
|
||||||
/// assert_eq!(4, four);
|
/// assert_eq!(4, four);
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// Using the 'turbofish' instead of annotationg `four`:
|
/// Using the 'turbofish' instead of annotating `four`:
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// let four = "4".parse::<u32>();
|
/// let four = "4".parse::<u32>();
|
||||||
|
@ -1765,11 +1777,13 @@ impl str {
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the lowercase equivalent of this string slice, as a new `String`.
|
/// Returns the lowercase equivalent of this string slice, as a new [`String`].
|
||||||
///
|
///
|
||||||
/// 'Lowercase' is defined according to the terms of the Unicode Derived Core Property
|
/// 'Lowercase' is defined according to the terms of the Unicode Derived Core Property
|
||||||
/// `Lowercase`.
|
/// `Lowercase`.
|
||||||
///
|
///
|
||||||
|
/// [`String`]: string/struct.String.html
|
||||||
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// Basic usage:
|
/// Basic usage:
|
||||||
|
@ -1839,11 +1853,13 @@ impl str {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the uppercase equivalent of this string slice, as a new `String`.
|
/// Returns the uppercase equivalent of this string slice, as a new [`String`].
|
||||||
///
|
///
|
||||||
/// 'Uppercase' is defined according to the terms of the Unicode Derived Core Property
|
/// 'Uppercase' is defined according to the terms of the Unicode Derived Core Property
|
||||||
/// `Uppercase`.
|
/// `Uppercase`.
|
||||||
///
|
///
|
||||||
|
/// [`String`]: string/struct.String.html
|
||||||
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// Basic usage:
|
/// Basic usage:
|
||||||
|
@ -1884,7 +1900,9 @@ impl str {
|
||||||
self.chars().flat_map(|c| c.escape_unicode()).collect()
|
self.chars().flat_map(|c| c.escape_unicode()).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Converts a `Box<str>` into a `String` without copying or allocating.
|
/// Converts a `Box<str>` into a [`String`] without copying or allocating.
|
||||||
|
///
|
||||||
|
/// [`String`]: string/struct.String.html
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
|
|
|
@ -555,6 +555,11 @@ impl<'a,T> Iterator for EnumeratedItems<'a,T> {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn size_hint(&self) -> (usize, Option<usize>) {
|
||||||
|
let size = self.vec.as_slice().len();
|
||||||
|
(size, Some(size))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<T> IntoIterator for VecPerParamSpace<T> {
|
impl<T> IntoIterator for VecPerParamSpace<T> {
|
||||||
|
|
|
@ -488,6 +488,9 @@ mod prim_tuple { }
|
||||||
///
|
///
|
||||||
/// *[See also the `std::f32` module](f32/index.html).*
|
/// *[See also the `std::f32` module](f32/index.html).*
|
||||||
///
|
///
|
||||||
|
/// However, please note that examples are shared between the `f64` and `f32`
|
||||||
|
/// primitive types. So it's normal if you see usage of `f64` in there.
|
||||||
|
///
|
||||||
mod prim_f32 { }
|
mod prim_f32 { }
|
||||||
|
|
||||||
#[doc(primitive = "f64")]
|
#[doc(primitive = "f64")]
|
||||||
|
@ -496,6 +499,9 @@ mod prim_f32 { }
|
||||||
///
|
///
|
||||||
/// *[See also the `std::f64` module](f64/index.html).*
|
/// *[See also the `std::f64` module](f64/index.html).*
|
||||||
///
|
///
|
||||||
|
/// However, please note that examples are shared between the `f64` and `f32`
|
||||||
|
/// primitive types. So it's normal if you see usage of `f32` in there.
|
||||||
|
///
|
||||||
mod prim_f64 { }
|
mod prim_f64 { }
|
||||||
|
|
||||||
#[doc(primitive = "i8")]
|
#[doc(primitive = "i8")]
|
||||||
|
|
Loading…
Add table
Reference in a new issue