diff options
| author | Andrew Paseltiner <apaseltiner@gmail.com> | 2016-08-28 18:52:21 -0400 |
|---|---|---|
| committer | Andrew Paseltiner <apaseltiner@gmail.com> | 2016-08-28 18:52:21 -0400 |
| commit | ef4952e73926bda4cfdbd0e48badc3ae30e4fb58 (patch) | |
| tree | 7a9e43a79a7cbcc360050a2c053650ece1512621 /src | |
| parent | e4791e086d671d429db864787f6b60547a28b0f5 (diff) | |
| download | rust-ef4952e73926bda4cfdbd0e48badc3ae30e4fb58.tar.gz rust-ef4952e73926bda4cfdbd0e48badc3ae30e4fb58.zip | |
Address FIXME in libcollectionstest/btree/set.rs
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcollectionstest/btree/set.rs | 30 | ||||
| -rw-r--r-- | src/libcollectionstest/lib.rs | 1 |
2 files changed, 6 insertions, 25 deletions
diff --git a/src/libcollectionstest/btree/set.rs b/src/libcollectionstest/btree/set.rs index f7b647d7772..a32e3f1a76a 100644 --- a/src/libcollectionstest/btree/set.rs +++ b/src/libcollectionstest/btree/set.rs @@ -39,30 +39,8 @@ fn test_hash() { assert!(::hash(&x) == ::hash(&y)); } -struct Counter<'a, 'b> { - i: &'a mut usize, - expected: &'b [i32], -} - -impl<'a, 'b, 'c> FnMut<(&'c i32,)> for Counter<'a, 'b> { - extern "rust-call" fn call_mut(&mut self, (&x,): (&'c i32,)) -> bool { - assert_eq!(x, self.expected[*self.i]); - *self.i += 1; - true - } -} - -impl<'a, 'b, 'c> FnOnce<(&'c i32,)> for Counter<'a, 'b> { - type Output = bool; - - extern "rust-call" fn call_once(mut self, args: (&'c i32,)) -> bool { - self.call_mut(args) - } -} - fn check<F>(a: &[i32], b: &[i32], expected: &[i32], f: F) where - // FIXME Replace Counter with `Box<FnMut(_) -> _>` - F: FnOnce(&BTreeSet<i32>, &BTreeSet<i32>, Counter) -> bool, + F: FnOnce(&BTreeSet<i32>, &BTreeSet<i32>, &mut FnMut(&i32) -> bool) -> bool, { let mut set_a = BTreeSet::new(); let mut set_b = BTreeSet::new(); @@ -71,7 +49,11 @@ fn check<F>(a: &[i32], b: &[i32], expected: &[i32], f: F) where for y in b { assert!(set_b.insert(*y)) } let mut i = 0; - f(&set_a, &set_b, Counter { i: &mut i, expected: expected }); + f(&set_a, &set_b, &mut |&x| { + assert_eq!(x, expected[i]); + i += 1; + true + }); assert_eq!(i, expected.len()); } diff --git a/src/libcollectionstest/lib.rs b/src/libcollectionstest/lib.rs index f448fcf2dbf..32a07e3e7e6 100644 --- a/src/libcollectionstest/lib.rs +++ b/src/libcollectionstest/lib.rs @@ -16,7 +16,6 @@ #![feature(collections)] #![feature(collections_bound)] #![feature(const_fn)] -#![feature(fn_traits)] #![feature(enumset)] #![feature(pattern)] #![feature(rand)] |
