vec: convert append and append_one to methods

These were only free functions on `~[T]` because taking self by-value
used to be broken.
This commit is contained in:
Daniel Micay 2014-03-30 23:53:26 -04:00
parent 612e22e417
commit cbbc1fc843
30 changed files with 126 additions and 222 deletions

View file

@ -92,7 +92,7 @@ fn vec_plus() {
if r.gen() {
v.push_all_move(rv);
} else {
v = vec::append(rv.clone(), v.as_slice());
v = rv.clone().append(v.as_slice());
}
i += 1;
}
@ -106,10 +106,10 @@ fn vec_append() {
while i < 1500 {
let rv = Vec::from_elem(r.gen_range(0u, i + 1), i);
if r.gen() {
v = vec::append(v.clone(), rv.as_slice());
v = v.clone().append(rv.as_slice());
}
else {
v = vec::append(rv.clone(), v.as_slice());
v = rv.clone().append(v.as_slice());
}
i += 1;
}

View file

@ -126,8 +126,7 @@ fn make_sequence_processor(sz: uint,
line = from_parent.recv();
if line == Vec::new() { break; }
carry = windows_with_carry(vec::append(carry,
line.as_slice()).as_slice(),
carry = windows_with_carry(carry.append(line.as_slice()).as_slice(),
sz,
|window| {
update_freq(&mut freqs, window);

View file

@ -97,8 +97,7 @@ fn recurse_or_fail(depth: int, st: Option<State>) {
unique: ~Cons((), @*st.unique),
tuple: (@Cons((), st.tuple.ref0().clone()),
~Cons((), @*st.tuple.ref1().clone())),
vec: vec::append(st.vec.clone(),
&[@Cons((), *st.vec.last().unwrap())]),
vec: st.vec.clone().append(&[@Cons((), *st.vec.last().unwrap())]),
res: r(@Cons((), st.res._l))
}
}

View file

@ -24,7 +24,7 @@ fn main() {
for _i in range(0u, 10u) {
arr.push(@~"key stuff");
map.insert(arr.clone(),
vec::append(arr.clone(), &[@~"value stuff"]));
arr.clone().append([@~"value stuff"]));
if arr.len() == 5 {
fail!();
}

View file

@ -13,7 +13,7 @@ use std::vec;
pub fn main() {
let a: Vec<int> = vec!(1, 2, 3, 4, 5);
let b: Vec<int> = vec!(6, 7, 8, 9, 0);
let v: Vec<int> = vec::append(a, b.as_slice());
let v: Vec<int> = a.append(b.as_slice());
println!("{}", *v.get(9));
assert_eq!(*v.get(0), 1);
assert_eq!(*v.get(7), 8);