]> git.lizzy.rs Git - rust.git/commitdiff
iterator: work around method resolve bug
authorDaniel Micay <danielmicay@gmail.com>
Sat, 15 Jun 2013 22:02:05 +0000 (18:02 -0400)
committerDaniel Micay <danielmicay@gmail.com>
Sat, 15 Jun 2013 22:02:05 +0000 (18:02 -0400)
src/libstd/iterator.rs

index a8969f1da6e272776d043ded7d72ce5c23248bf6..a505c5523598628ff2ff4e92c76cc421388f1688 100644 (file)
@@ -310,10 +310,10 @@ fn scan<'r, St, B>(self, initial_state: St, f: &'r fn(&mut St, A) -> Option<B>)
     fn any_(&mut self, f: &fn(A) -> bool) -> bool;
 
     /// Return the first element satisfying the specified predicate
-    fn find(&mut self, predicate: &fn(&A) -> bool) -> Option<A>;
+    fn find_(&mut self, predicate: &fn(&A) -> bool) -> Option<A>;
 
     /// Return the index of the first element satisfying the specified predicate
-    fn position(&mut self, predicate: &fn(A) -> bool) -> Option<uint>;
+    fn position_(&mut self, predicate: &fn(A) -> bool) -> Option<uint>;
 }
 
 /// Iterator adaptors provided for every `Iterator` implementation. The adaptor objects are also
@@ -448,7 +448,7 @@ fn any_(&mut self, f: &fn(A) -> bool) -> bool {
 
     /// Return the first element satisfying the specified predicate
     #[inline(always)]
-    fn find(&mut self, predicate: &fn(&A) -> bool) -> Option<A> {
+    fn find_(&mut self, predicate: &fn(&A) -> bool) -> Option<A> {
         for self.advance |x| {
             if predicate(&x) { return Some(x) }
         }
@@ -457,7 +457,7 @@ fn find(&mut self, predicate: &fn(&A) -> bool) -> Option<A> {
 
     /// Return the index of the first element satisfying the specified predicate
     #[inline]
-    fn position(&mut self, predicate: &fn(A) -> bool) -> Option<uint> {
+    fn position_(&mut self, predicate: &fn(A) -> bool) -> Option<uint> {
         let mut i = 0;
         for self.advance |x| {
             if predicate(x) {
@@ -1087,16 +1087,16 @@ fn test_any() {
     #[test]
     fn test_find() {
         let v = &[1, 3, 9, 27, 103, 14, 11];
-        assert_eq!(*v.iter().find(|x| *x & 1 == 0).unwrap(), 14);
-        assert_eq!(*v.iter().find(|x| *x % 3 == 0).unwrap(), 3);
-        assert!(v.iter().find(|x| *x % 12 == 0).is_none());
+        assert_eq!(*v.iter().find_(|x| *x & 1 == 0).unwrap(), 14);
+        assert_eq!(*v.iter().find_(|x| *x % 3 == 0).unwrap(), 3);
+        assert!(v.iter().find_(|x| *x % 12 == 0).is_none());
     }
 
     #[test]
     fn test_position() {
         let v = &[1, 3, 9, 27, 103, 14, 11];
-        assert_eq!(v.iter().position(|x| *x & 1 == 0).unwrap(), 5);
-        assert_eq!(v.iter().position(|x| *x % 3 == 0).unwrap(), 1);
-        assert!(v.iter().position(|x| *x % 12 == 0).is_none());
+        assert_eq!(v.iter().position_(|x| *x & 1 == 0).unwrap(), 5);
+        assert_eq!(v.iter().position_(|x| *x % 3 == 0).unwrap(), 1);
+        assert!(v.iter().position_(|x| *x % 12 == 0).is_none());
     }
 }