about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAndrew Paseltiner <apaseltiner@gmail.com>2016-08-28 18:52:21 -0400
committerAndrew Paseltiner <apaseltiner@gmail.com>2016-08-28 18:52:21 -0400
commitef4952e73926bda4cfdbd0e48badc3ae30e4fb58 (patch)
tree7a9e43a79a7cbcc360050a2c053650ece1512621 /src
parente4791e086d671d429db864787f6b60547a28b0f5 (diff)
downloadrust-ef4952e73926bda4cfdbd0e48badc3ae30e4fb58.tar.gz
rust-ef4952e73926bda4cfdbd0e48badc3ae30e4fb58.zip
Address FIXME in libcollectionstest/btree/set.rs
Diffstat (limited to 'src')
-rw-r--r--src/libcollectionstest/btree/set.rs30
-rw-r--r--src/libcollectionstest/lib.rs1
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)]