We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 9a3b25f + d9b2e6b commit 845ff65Copy full SHA for 845ff65
src/libcollections/vec.rs
@@ -964,7 +964,7 @@ impl<T> Vec<T> {
964
#[inline]
965
pub fn swap_remove(&mut self, index: uint) -> Option<T> {
966
let length = self.len();
967
- if index < length - 1 {
+ if length > 0 && index < length - 1 {
968
self.as_mut_slice().swap(index, length - 1);
969
} else if index >= length {
970
return None
@@ -2003,6 +2003,12 @@ mod tests {
2003
let _ = vec[3];
2004
}
2005
2006
+ #[test]
2007
+ fn test_swap_remove_empty() {
2008
+ let mut vec: Vec<uint> = vec!();
2009
+ assert_eq!(vec.swap_remove(0), None);
2010
+ }
2011
+
2012
#[bench]
2013
fn bench_new(b: &mut Bencher) {
2014
b.iter(|| {
0 commit comments