Fix off-by-one in String::remove
Obviously we can't remove the character one past the end of the String. And we can't today either - we'll just panic at char_at() instead - but if we're going to keep that assertion, we should at least have a correct assertion.
This commit is contained in:
parent
4744472fe0
commit
8b398ed823
@ -1029,8 +1029,8 @@ pub fn pop(&mut self) -> Option<char> {
|
||||
///
|
||||
/// # Panics
|
||||
///
|
||||
/// Panics if `idx` is larger than the `String`'s length, or if it does not
|
||||
/// lie on a [`char`] boundary.
|
||||
/// Panics if `idx` is larger than or equal to the `String`'s length,
|
||||
/// or if it does not lie on a [`char`] boundary.
|
||||
///
|
||||
/// [`char`]: ../primitive.char.html
|
||||
///
|
||||
@ -1049,7 +1049,7 @@ pub fn pop(&mut self) -> Option<char> {
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub fn remove(&mut self, idx: usize) -> char {
|
||||
let len = self.len();
|
||||
assert!(idx <= len);
|
||||
assert!(idx < len);
|
||||
|
||||
let ch = self.char_at(idx);
|
||||
let next = idx + ch.len_utf8();
|
||||
|
Loading…
Reference in New Issue
Block a user