Skip to content

Commit 7d3b0bf

Browse files
committed
std: Make ~[T] no longer a growable vector
This removes all resizability support for ~[T] vectors in preparation of DST. The only growable vector remaining is Vec<T>. In summary, the following methods from ~[T] and various functions were removed. Each method/function has an equivalent on the Vec type in std::vec unless otherwise stated. * slice::OwnedCloneableVector * slice::OwnedEqVector * slice::append * slice::append_one * slice::build (no replacement) * slice::bytes::push_bytes * slice::from_elem * slice::from_fn * slice::with_capacity * ~[T].capacity() * ~[T].clear() * ~[T].dedup() * ~[T].extend() * ~[T].grow() * ~[T].grow_fn() * ~[T].grow_set() * ~[T].insert() * ~[T].pop() * ~[T].push() * ~[T].push_all() * ~[T].push_all_move() * ~[T].remove() * ~[T].reserve() * ~[T].reserve_additional() * ~[T].reserve_exect() * ~[T].retain() * ~[T].set_len() * ~[T].shift() * ~[T].shrink_to_fit() * ~[T].swap_remove() * ~[T].truncate() * ~[T].unshift() * ~str.clear() * ~str.set_len() * ~str.truncate() Note that no other API changes were made. Existing apis that took or returned ~[T] continue to do so. [breaking-change]
1 parent ce2bab6 commit 7d3b0bf

28 files changed

+342
-999
lines changed

src/libstd/comm/shared.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ use rt::task::{Task, BlockedTask};
3030
use rt::thread::Thread;
3131
use sync::atomics;
3232
use unstable::mutex::NativeMutex;
33-
use slice::OwnedVector;
3433

3534
use mpsc = sync::mpsc_queue;
3635

src/libstd/comm/stream.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ use rt::task::{Task, BlockedTask};
3030
use rt::thread::Thread;
3131
use spsc = sync::spsc_queue;
3232
use sync::atomics;
33-
use slice::OwnedVector;
3433

3534
static DISCONNECTED: int = int::MIN;
3635
#[cfg(test)]

src/libstd/hash/sip.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -359,13 +359,8 @@ pub fn hash_with_keys<T: Hash<SipState>>(k0: u64, k1: u64, value: &T) -> u64 {
359359
#[cfg(test)]
360360
mod tests {
361361
extern crate test;
362-
use io::Writer;
363-
use iter::Iterator;
362+
use prelude::*;
364363
use num::ToStrRadix;
365-
use option::{Some, None};
366-
use str::Str;
367-
use strbuf::StrBuf;
368-
use slice::{Vector, ImmutableVector, OwnedVector};
369364
use self::test::Bencher;
370365

371366
use super::super::Hash;
@@ -454,7 +449,7 @@ mod tests {
454449

455450
let k0 = 0x_07_06_05_04_03_02_01_00_u64;
456451
let k1 = 0x_0f_0e_0d_0c_0b_0a_09_08_u64;
457-
let mut buf : ~[u8] = ~[];
452+
let mut buf = Vec::new();
458453
let mut t = 0;
459454
let mut state_inc = SipState::new_with_keys(k0, k1);
460455
let mut state_full = SipState::new_with_keys(k0, k1);
@@ -496,7 +491,7 @@ mod tests {
496491
assert_eq!(vec, out);
497492

498493
state_full.reset();
499-
state_full.write(buf);
494+
state_full.write(buf.as_slice());
500495
let f = result_str(state_full.result());
501496
let i = result_str(state_inc.result());
502497
let v = to_hex_str(&vecs[t]);

src/libstd/io/buffered.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use iter::ExactSize;
1717
use ops::Drop;
1818
use option::{Some, None, Option};
1919
use result::{Ok, Err};
20-
use slice::{OwnedVector, ImmutableVector, MutableVector};
20+
use slice::{ImmutableVector, MutableVector};
2121
use slice;
2222
use vec::Vec;
2323

@@ -391,7 +391,7 @@ mod test {
391391

392392
/// A dummy reader intended at testing short-reads propagation.
393393
pub struct ShortReader {
394-
lengths: ~[uint],
394+
lengths: Vec<uint>,
395395
}
396396

397397
impl Reader for ShortReader {
@@ -554,7 +554,7 @@ mod test {
554554

555555
#[test]
556556
fn test_short_reads() {
557-
let inner = ShortReader{lengths: ~[0, 1, 2, 0, 1, 0]};
557+
let inner = ShortReader{lengths: vec![0, 1, 2, 0, 1, 0]};
558558
let mut reader = BufferedReader::new(inner);
559559
let mut buf = [0, 0];
560560
assert_eq!(reader.read(buf), Ok(0));

src/libstd/io/extensions.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use option::{Option, Some, None};
2121
use result::{Ok, Err};
2222
use io;
2323
use io::{IoError, IoResult, Reader};
24-
use slice::{OwnedVector, ImmutableVector, Vector};
24+
use slice::{ImmutableVector, Vector};
2525
use ptr::RawPtr;
2626

2727
/// An iterator that reads a single byte on each iteration,
@@ -503,21 +503,22 @@ mod test {
503503
#[cfg(test)]
504504
mod bench {
505505
extern crate test;
506-
use self::test::Bencher;
506+
507507
use container::Container;
508+
use prelude::*;
509+
use self::test::Bencher;
508510

509511
macro_rules! u64_from_be_bytes_bench_impl(
510512
($size:expr, $stride:expr, $start_index:expr) =>
511513
({
512-
use slice;
513514
use super::u64_from_be_bytes;
514515

515-
let data = slice::from_fn($stride*100+$start_index, |i| i as u8);
516+
let data = Vec::from_fn($stride*100+$start_index, |i| i as u8);
516517
let mut sum = 0u64;
517518
b.iter(|| {
518519
let mut i = $start_index;
519520
while i < data.len() {
520-
sum += u64_from_be_bytes(data, i, $size);
521+
sum += u64_from_be_bytes(data.as_slice(), i, $size);
521522
i += $stride;
522523
}
523524
});

src/libstd/io/mem.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use result::{Err, Ok};
1717
use io;
1818
use io::{Reader, Writer, Seek, Buffer, IoError, SeekStyle, IoResult};
1919
use slice;
20-
use slice::{Vector, ImmutableVector, MutableVector, OwnedCloneableVector};
20+
use slice::{Vector, ImmutableVector, MutableVector};
2121
use vec::Vec;
2222

2323
fn combine(seek: SeekStyle, cur: uint, end: uint, offset: i64) -> IoResult<u64> {

src/libstd/io/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,11 @@ use os;
228228
use option::{Option, Some, None};
229229
use path::Path;
230230
use result::{Ok, Err, Result};
231-
use str::{StrSlice, OwnedStr};
231+
use str::StrSlice;
232232
use str;
233233
use uint;
234234
use unstable::finally::try_finally;
235-
use slice::{Vector, OwnedVector, MutableVector, ImmutableVector, OwnedCloneableVector};
235+
use slice::{Vector, MutableVector, ImmutableVector};
236236
use vec::Vec;
237237

238238
// Reexports

src/libstd/io/process.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use fmt;
1616
use io::IoResult;
1717
use io;
1818
use libc;
19+
use mem;
1920
use rt::rtio::{RtioProcess, IoFactory, LocalIo};
2021

2122
/// Signal a process to exit, without forcibly killing it. Corresponds to
@@ -416,12 +417,7 @@ impl Drop for Process {
416417
drop(self.stdin.take());
417418
drop(self.stdout.take());
418419
drop(self.stderr.take());
419-
loop {
420-
match self.extra_io.pop() {
421-
Some(_) => (),
422-
None => break,
423-
}
424-
}
420+
drop(mem::replace(&mut self.extra_io, ~[]));
425421

426422
self.wait();
427423
}

src/libstd/io/signal.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use mem::drop;
2828
use option::{Some, None};
2929
use result::{Ok, Err};
3030
use rt::rtio::{IoFactory, LocalIo, RtioSignal};
31-
use slice::{ImmutableVector, OwnedVector};
31+
use slice::ImmutableVector;
3232
use vec::Vec;
3333

3434
/// Signals that can be sent and received

src/libstd/local_data.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ use kinds::Send;
4646
use mem::replace;
4747
use option::{None, Option, Some};
4848
use rt::task::{Task, LocalStorage};
49-
use slice::{ImmutableVector, MutableVector, OwnedVector};
49+
use slice::{ImmutableVector, MutableVector};
5050
use vec::Vec;
5151

5252
/**

0 commit comments

Comments
 (0)