Skip to content

Commit 7272ea5

Browse files
committed
Handle fallout in iter, option, result, and sync::arc
API changes: - UnsafeArc::newN() returns Vec<UnsafeArc<T>>
1 parent 84da1b2 commit 7272ea5

File tree

4 files changed

+54
-53
lines changed

4 files changed

+54
-53
lines changed

src/libstd/iter.rs

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2339,8 +2339,8 @@ mod tests {
23392339
#[test]
23402340
fn test_counter_from_iter() {
23412341
let it = count(0, 5).take(10);
2342-
let xs: ~[int] = FromIterator::from_iter(it);
2343-
assert_eq!(xs, box [0, 5, 10, 15, 20, 25, 30, 35, 40, 45]);
2342+
let xs: Vec<int> = FromIterator::from_iter(it);
2343+
assert_eq!(xs, vec![0, 5, 10, 15, 20, 25, 30, 35, 40, 45]);
23442344
}
23452345

23462346
#[test]
@@ -2370,7 +2370,7 @@ mod tests {
23702370
fn test_filter_map() {
23712371
let mut it = count(0u, 1u).take(10)
23722372
.filter_map(|x| if x % 2 == 0 { Some(x*x) } else { None });
2373-
assert_eq!(it.collect::<~[uint]>(), box [0*0, 2*2, 4*4, 6*6, 8*8]);
2373+
assert_eq!(it.collect::<Vec<uint>>(), vec![0*0, 2*2, 4*4, 6*6, 8*8]);
23742374
}
23752375

23762376
#[test]
@@ -2492,7 +2492,7 @@ mod tests {
24922492
let ys = xs.iter()
24932493
.map(|&x| x)
24942494
.inspect(|_| n += 1)
2495-
.collect::<~[uint]>();
2495+
.collect::<Vec<uint>>();
24962496

24972497
assert_eq!(n, xs.len());
24982498
assert_eq!(xs.as_slice(), ys.as_slice());
@@ -2627,8 +2627,8 @@ mod tests {
26272627

26282628
#[test]
26292629
fn test_collect() {
2630-
let a = box [1, 2, 3, 4, 5];
2631-
let b: ~[int] = a.iter().map(|&x| x).collect();
2630+
let a = vec![1, 2, 3, 4, 5];
2631+
let b: Vec<int> = a.iter().map(|&x| x).collect();
26322632
assert_eq!(a, b);
26332633
}
26342634

@@ -2701,7 +2701,7 @@ mod tests {
27012701
let mut it = xs.iter();
27022702
it.next();
27032703
it.next();
2704-
assert_eq!(it.rev().map(|&x| x).collect::<~[int]>(), box [16, 14, 12, 10, 8, 6]);
2704+
assert_eq!(it.rev().map(|&x| x).collect::<Vec<int>>(), vec![16, 14, 12, 10, 8, 6]);
27052705
}
27062706

27072707
#[test]
@@ -2939,12 +2939,12 @@ mod tests {
29392939

29402940
#[test]
29412941
fn test_double_ended_range() {
2942-
assert_eq!(range(11i, 14).rev().collect::<~[int]>(), box [13i, 12, 11]);
2942+
assert_eq!(range(11i, 14).rev().collect::<Vec<int>>(), vec![13i, 12, 11]);
29432943
for _ in range(10i, 0).rev() {
29442944
fail!("unreachable");
29452945
}
29462946

2947-
assert_eq!(range(11u, 14).rev().collect::<~[uint]>(), box [13u, 12, 11]);
2947+
assert_eq!(range(11u, 14).rev().collect::<Vec<uint>>(), vec![13u, 12, 11]);
29482948
for _ in range(10u, 0).rev() {
29492949
fail!("unreachable");
29502950
}
@@ -2996,13 +2996,14 @@ mod tests {
29962996
}
29972997
}
29982998

2999-
assert_eq!(range(0i, 5).collect::<~[int]>(), box [0i, 1, 2, 3, 4]);
3000-
assert_eq!(range(-10i, -1).collect::<~[int]>(), box [-10, -9, -8, -7, -6, -5, -4, -3, -2]);
3001-
assert_eq!(range(0i, 5).rev().collect::<~[int]>(), box [4, 3, 2, 1, 0]);
3002-
assert_eq!(range(200, -5).collect::<~[int]>(), box []);
3003-
assert_eq!(range(200, -5).rev().collect::<~[int]>(), box []);
3004-
assert_eq!(range(200, 200).collect::<~[int]>(), box []);
3005-
assert_eq!(range(200, 200).rev().collect::<~[int]>(), box []);
2999+
assert_eq!(range(0i, 5).collect::<Vec<int>>(), vec![0i, 1, 2, 3, 4]);
3000+
assert_eq!(range(-10i, -1).collect::<Vec<int>>(),
3001+
vec![-10, -9, -8, -7, -6, -5, -4, -3, -2]);
3002+
assert_eq!(range(0i, 5).rev().collect::<Vec<int>>(), vec![4, 3, 2, 1, 0]);
3003+
assert_eq!(range(200, -5).collect::<Vec<int>>(), vec![]);
3004+
assert_eq!(range(200, -5).rev().collect::<Vec<int>>(), vec![]);
3005+
assert_eq!(range(200, 200).collect::<Vec<int>>(), vec![]);
3006+
assert_eq!(range(200, 200).rev().collect::<Vec<int>>(), vec![]);
30063007

30073008
assert_eq!(range(0i, 100).size_hint(), (100, Some(100)));
30083009
// this test is only meaningful when sizeof uint < sizeof u64
@@ -3013,32 +3014,32 @@ mod tests {
30133014

30143015
#[test]
30153016
fn test_range_inclusive() {
3016-
assert_eq!(range_inclusive(0i, 5).collect::<~[int]>(), box [0i, 1, 2, 3, 4, 5]);
3017-
assert_eq!(range_inclusive(0i, 5).rev().collect::<~[int]>(), box [5i, 4, 3, 2, 1, 0]);
3018-
assert_eq!(range_inclusive(200, -5).collect::<~[int]>(), box []);
3019-
assert_eq!(range_inclusive(200, -5).rev().collect::<~[int]>(), box []);
3020-
assert_eq!(range_inclusive(200, 200).collect::<~[int]>(), box [200]);
3021-
assert_eq!(range_inclusive(200, 200).rev().collect::<~[int]>(), box [200]);
3017+
assert_eq!(range_inclusive(0i, 5).collect::<Vec<int>>(), vec![0i, 1, 2, 3, 4, 5]);
3018+
assert_eq!(range_inclusive(0i, 5).rev().collect::<Vec<int>>(), vec![5i, 4, 3, 2, 1, 0]);
3019+
assert_eq!(range_inclusive(200, -5).collect::<Vec<int>>(), vec![]);
3020+
assert_eq!(range_inclusive(200, -5).rev().collect::<Vec<int>>(), vec![]);
3021+
assert_eq!(range_inclusive(200, 200).collect::<Vec<int>>(), vec![200]);
3022+
assert_eq!(range_inclusive(200, 200).rev().collect::<Vec<int>>(), vec![200]);
30223023
}
30233024

30243025
#[test]
30253026
fn test_range_step() {
3026-
assert_eq!(range_step(0i, 20, 5).collect::<~[int]>(), box [0, 5, 10, 15]);
3027-
assert_eq!(range_step(20i, 0, -5).collect::<~[int]>(), box [20, 15, 10, 5]);
3028-
assert_eq!(range_step(20i, 0, -6).collect::<~[int]>(), box [20, 14, 8, 2]);
3029-
assert_eq!(range_step(200u8, 255, 50).collect::<~[u8]>(), box [200u8, 250]);
3030-
assert_eq!(range_step(200, -5, 1).collect::<~[int]>(), box []);
3031-
assert_eq!(range_step(200, 200, 1).collect::<~[int]>(), box []);
3027+
assert_eq!(range_step(0i, 20, 5).collect::<Vec<int>>(), vec![0, 5, 10, 15]);
3028+
assert_eq!(range_step(20i, 0, -5).collect::<Vec<int>>(), vec![20, 15, 10, 5]);
3029+
assert_eq!(range_step(20i, 0, -6).collect::<Vec<int>>(), vec![20, 14, 8, 2]);
3030+
assert_eq!(range_step(200u8, 255, 50).collect::<Vec<u8>>(), vec![200u8, 250]);
3031+
assert_eq!(range_step(200, -5, 1).collect::<Vec<int>>(), vec![]);
3032+
assert_eq!(range_step(200, 200, 1).collect::<Vec<int>>(), vec![]);
30323033
}
30333034

30343035
#[test]
30353036
fn test_range_step_inclusive() {
3036-
assert_eq!(range_step_inclusive(0i, 20, 5).collect::<~[int]>(), box [0, 5, 10, 15, 20]);
3037-
assert_eq!(range_step_inclusive(20i, 0, -5).collect::<~[int]>(), box [20, 15, 10, 5, 0]);
3038-
assert_eq!(range_step_inclusive(20i, 0, -6).collect::<~[int]>(), box [20, 14, 8, 2]);
3039-
assert_eq!(range_step_inclusive(200u8, 255, 50).collect::<~[u8]>(), box [200u8, 250]);
3040-
assert_eq!(range_step_inclusive(200, -5, 1).collect::<~[int]>(), box []);
3041-
assert_eq!(range_step_inclusive(200, 200, 1).collect::<~[int]>(), box [200]);
3037+
assert_eq!(range_step_inclusive(0i, 20, 5).collect::<Vec<int>>(), vec![0, 5, 10, 15, 20]);
3038+
assert_eq!(range_step_inclusive(20i, 0, -5).collect::<Vec<int>>(), vec![20, 15, 10, 5, 0]);
3039+
assert_eq!(range_step_inclusive(20i, 0, -6).collect::<Vec<int>>(), vec![20, 14, 8, 2]);
3040+
assert_eq!(range_step_inclusive(200u8, 255, 50).collect::<Vec<u8>>(), vec![200u8, 250]);
3041+
assert_eq!(range_step_inclusive(200, -5, 1).collect::<Vec<int>>(), vec![]);
3042+
assert_eq!(range_step_inclusive(200, 200, 1).collect::<Vec<int>>(), vec![200]);
30423043
}
30433044

30443045
#[test]

src/libstd/option.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -860,22 +860,22 @@ mod tests {
860860

861861
#[test]
862862
fn test_collect() {
863-
let v: Option<~[int]> = collect(range(0, 0)
864-
.map(|_| Some(0)));
865-
assert_eq!(v, Some(box []));
863+
let v: Option<Vec<int>> = collect(range(0, 0)
864+
.map(|_| Some(0)));
865+
assert_eq!(v, Some(vec![]));
866866

867-
let v: Option<~[int]> = collect(range(0, 3)
868-
.map(|x| Some(x)));
869-
assert_eq!(v, Some(box [0, 1, 2]));
867+
let v: Option<Vec<int>> = collect(range(0, 3)
868+
.map(|x| Some(x)));
869+
assert_eq!(v, Some(vec![0, 1, 2]));
870870

871-
let v: Option<~[int]> = collect(range(0, 3)
872-
.map(|x| if x > 1 { None } else { Some(x) }));
871+
let v: Option<Vec<int>> = collect(range(0, 3)
872+
.map(|x| if x > 1 { None } else { Some(x) }));
873873
assert_eq!(v, None);
874874

875875
// test that it does not take more elements than it needs
876876
let mut functions = [|| Some(()), || None, || fail!()];
877877

878-
let v: Option<~[()]> = collect(functions.mut_iter().map(|f| (*f)()));
878+
let v: Option<Vec<()>> = collect(functions.mut_iter().map(|f| (*f)()));
879879

880880
assert_eq!(v, None);
881881
}

src/libstd/result.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -684,20 +684,20 @@ mod tests {
684684

685685
#[test]
686686
fn test_collect() {
687-
let v: Result<~[int], ()> = collect(range(0, 0).map(|_| Ok::<int, ()>(0)));
688-
assert_eq!(v, Ok(box []));
687+
let v: Result<Vec<int>, ()> = collect(range(0, 0).map(|_| Ok::<int, ()>(0)));
688+
assert_eq!(v, Ok(vec![]));
689689

690-
let v: Result<~[int], ()> = collect(range(0, 3).map(|x| Ok::<int, ()>(x)));
691-
assert_eq!(v, Ok(box [0, 1, 2]));
690+
let v: Result<Vec<int>, ()> = collect(range(0, 3).map(|x| Ok::<int, ()>(x)));
691+
assert_eq!(v, Ok(vec![0, 1, 2]));
692692

693-
let v: Result<~[int], int> = collect(range(0, 3)
694-
.map(|x| if x > 1 { Err(x) } else { Ok(x) }));
693+
let v: Result<Vec<int>, int> = collect(range(0, 3)
694+
.map(|x| if x > 1 { Err(x) } else { Ok(x) }));
695695
assert_eq!(v, Err(2));
696696

697697
// test that it does not take more elements than it needs
698698
let mut functions = [|| Ok(()), || Err(1), || fail!()];
699699

700-
let v: Result<~[()], int> = collect(functions.mut_iter().map(|f| (*f)()));
700+
let v: Result<Vec<()>, int> = collect(functions.mut_iter().map(|f| (*f)()));
701701
assert_eq!(v, Err(1));
702702
}
703703

src/libstd/sync/arc.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ impl<T: Send> UnsafeArc<T> {
6868

6969
/// As new(), but returns a vector of as many pre-cloned handles as
7070
/// requested.
71-
pub fn newN(data: T, num_handles: uint) -> ~[UnsafeArc<T>] {
71+
pub fn newN(data: T, num_handles: uint) -> Vec<UnsafeArc<T>> {
7272
unsafe {
7373
if num_handles == 0 {
74-
box [] // need to free data here
74+
vec![] // need to free data here
7575
} else {
7676
let ptr = new_inner(data, num_handles);
7777
let v = Vec::from_fn(num_handles, |_| UnsafeArc { data: ptr });
78-
v.move_iter().collect()
78+
v
7979
}
8080
}
8181
}

0 commit comments

Comments
 (0)