about summary refs log tree commit diff
path: root/src/libextra
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-08-01 22:10:45 -0700
committerbors <bors@rust-lang.org>2013-08-01 22:10:45 -0700
commitbbcce8d95c582d3f918fe4e978d6a715efd991e9 (patch)
tree6c0a714130897160fc6ef8a3d17671aed2bc8b90 /src/libextra
parentecefeb03ccecdcb306e5cc3c76b04670073a82fa (diff)
parent234acad404535868ecd7f5b48c3e120c4ea559c9 (diff)
downloadrust-bbcce8d95c582d3f918fe4e978d6a715efd991e9.tar.gz
rust-bbcce8d95c582d3f918fe4e978d6a715efd991e9.zip
auto merge of #8216 : thestinger/rust/range, r=huonw
Diffstat (limited to 'src/libextra')
-rw-r--r--src/libextra/arc.rs5
-rw-r--r--src/libextra/arena.rs4
-rw-r--r--src/libextra/bitv.rs17
-rw-r--r--src/libextra/container.rs11
-rw-r--r--src/libextra/crypto/sha2.rs15
-rw-r--r--src/libextra/dlist.rs3
-rw-r--r--src/libextra/fileinput.rs2
-rw-r--r--src/libextra/flatpipes.rs21
-rw-r--r--src/libextra/num/bigint.rs2
-rw-r--r--src/libextra/ringbuf.rs28
-rw-r--r--src/libextra/serialize.rs17
-rw-r--r--src/libextra/smallintmap.rs10
-rw-r--r--src/libextra/sort.rs14
-rw-r--r--src/libextra/tempfile.rs3
-rw-r--r--src/libextra/terminfo/parser/compiled.rs8
-rw-r--r--src/libextra/test.rs3
-rw-r--r--src/libextra/treemap.rs5
17 files changed, 76 insertions, 92 deletions
diff --git a/src/libextra/arc.rs b/src/libextra/arc.rs
index f235a3d2db3..3aa77577fb2 100644
--- a/src/libextra/arc.rs
+++ b/src/libextra/arc.rs
@@ -566,7 +566,6 @@ mod tests {
     use std::cell::Cell;
     use std::comm;
     use std::task;
-    use std::uint;
 
     #[test]
     fn manually_share_arc() {
@@ -851,7 +850,7 @@ mod tests {
                 *state = 31337;
                 // FIXME: #7372: hits type inference bug with iterators
                 // send to other readers
-                for uint::range(0, reader_convos.len()) |i| {
+                foreach i in range(0u, reader_convos.len()) {
                     match reader_convos[i] {
                         (ref rc, _) => rc.send(()),
                     }
@@ -861,7 +860,7 @@ mod tests {
             do (&read_mode).read |state| {
                 // FIXME: #7372: hits type inference bug with iterators
                 // complete handshake with other readers
-                for uint::range(0, reader_convos.len()) |i| {
+                foreach i in range(0u, reader_convos.len()) {
                     match reader_convos[i] {
                         (_, ref rp) => rp.recv(),
                     }
diff --git a/src/libextra/arena.rs b/src/libextra/arena.rs
index 31acb5bd498..0f54a9effa2 100644
--- a/src/libextra/arena.rs
+++ b/src/libextra/arena.rs
@@ -277,7 +277,7 @@ impl Arena {
 #[test]
 fn test_arena_destructors() {
     let arena = Arena();
-    for uint::range(0, 10) |i| {
+    foreach i in range(0u, 10) {
         // Arena allocate something with drop glue to make sure it
         // doesn't leak.
         do arena.alloc { @i };
@@ -293,7 +293,7 @@ fn test_arena_destructors() {
 fn test_arena_destructors_fail() {
     let arena = Arena();
     // Put some stuff in the arena.
-    for uint::range(0, 10) |i| {
+    foreach i in range(0u, 10) {
         // Arena allocate something with drop glue to make sure it
         // doesn't leak.
         do arena.alloc { @i };
diff --git a/src/libextra/bitv.rs b/src/libextra/bitv.rs
index 570186b65a6..834faf96eb6 100644
--- a/src/libextra/bitv.rs
+++ b/src/libextra/bitv.rs
@@ -19,7 +19,6 @@ use std::ops;
 use std::uint;
 use std::vec;
 
-
 #[deriving(Clone)]
 struct SmallBitv {
     /// only the lowest nbits of this value are used. the rest is undefined.
@@ -146,7 +145,7 @@ impl BigBitv {
         let len = b.storage.len();
         assert_eq!(self.storage.len(), len);
         let mut changed = false;
-        for uint::range(0, len) |i| {
+        foreach i in range(0, len) {
             let mask = big_mask(nbits, i);
             let w0 = self.storage[i] & mask;
             let w1 = b.storage[i] & mask;
@@ -161,7 +160,7 @@ impl BigBitv {
 
     #[inline]
     pub fn each_storage(&mut self, op: &fn(v: &mut uint) -> bool) -> bool {
-        uint::range(0, self.storage.len(), |i| op(&mut self.storage[i]))
+        range(0u, self.storage.len()).advance(|i| op(&mut self.storage[i]))
     }
 
     #[inline]
@@ -511,7 +510,7 @@ impl Bitv {
     }
 
     pub fn ones(&self, f: &fn(uint) -> bool) -> bool {
-        uint::range(0, self.nbits, |i| !self.get(i) || f(i))
+        range(0u, self.nbits).advance(|i| !self.get(i) || f(i))
     }
 
 }
@@ -542,7 +541,7 @@ pub fn from_bools(bools: &[bool]) -> Bitv {
  */
 pub fn from_fn(len: uint, f: &fn(index: uint) -> bool) -> Bitv {
     let mut bitv = Bitv::new(len, false);
-    for uint::range(0, len) |i| {
+    foreach i in range(0u, len) {
         bitv.set(i, f(i));
     }
     bitv
@@ -559,7 +558,7 @@ fn iterate_bits(base: uint, bits: uint, f: &fn(uint) -> bool) -> bool {
     if bits == 0 {
         return true;
     }
-    for uint::range(0, uint::bits) |i| {
+    foreach i in range(0u, uint::bits) {
         if bits & (1 << i) != 0 {
             if !f(base + i) {
                 return false;
@@ -674,7 +673,7 @@ impl BitvSet {
     fn other_op(&mut self, other: &BitvSet, f: &fn(uint, uint) -> uint) {
         fn nbits(mut w: uint) -> uint {
             let mut bits = 0;
-            for uint::range(0, uint::bits) |_| {
+            foreach _ in range(0u, uint::bits) {
                 if w == 0 {
                     break;
                 }
@@ -1283,12 +1282,12 @@ mod tests {
     #[test]
     fn test_equal_sneaky_big() {
         let mut a = bitv::Bitv::new(100, false);
-        for uint::range(0, 100) |i| {
+        foreach i in range(0u, 100) {
             a.set(i, true);
         }
 
         let mut b = bitv::Bitv::new(100, true);
-        for uint::range(0, 100) |i| {
+        foreach i in range(0u, 100) {
             b.set(i, true);
         }
 
diff --git a/src/libextra/container.rs b/src/libextra/container.rs
index 0ca992fdacd..5b2de22ff07 100644
--- a/src/libextra/container.rs
+++ b/src/libextra/container.rs
@@ -41,9 +41,8 @@ pub trait Deque<T> : Mutable {
 
 #[cfg(test)]
 mod bench {
-
     use std::container::MutableMap;
-    use std::{vec,rand,uint};
+    use std::{vec, rand};
     use std::rand::RngUtil;
     use test::BenchHarness;
 
@@ -54,7 +53,7 @@ mod bench {
         let mut rng = rand::XorShiftRng::new();
 
         map.clear();
-        for uint::range(0,n) |_i| {
+        foreach _ in range(0, n) {
             map.insert(rng.gen::<uint>() % n, 1);
         }
 
@@ -71,7 +70,7 @@ mod bench {
                                                  bh: &mut BenchHarness) {
         // setup
         map.clear();
-        for uint::range(0, n) |i| {
+        foreach i in range(0u, n) {
             map.insert(i*2, 1);
         }
 
@@ -109,7 +108,7 @@ mod bench {
                                                map: &mut M,
                                                bh: &mut BenchHarness) {
         // setup
-        for uint::range(0, n) |i| {
+        foreach i in range(0u, n) {
             map.insert(i, 1);
         }
 
@@ -120,4 +119,4 @@ mod bench {
             i = (i + 1) % n;
         }
      }
-}
\ No newline at end of file
+}
diff --git a/src/libextra/crypto/sha2.rs b/src/libextra/crypto/sha2.rs
index 27612b00f61..d713e192972 100644
--- a/src/libextra/crypto/sha2.rs
+++ b/src/libextra/crypto/sha2.rs
@@ -8,9 +8,6 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-
-use std::uint;
-
 use digest::Digest;
 
 // BitCounter is a specialized structure intended simply for counting the
@@ -169,7 +166,7 @@ impl Engine512 {
             ((x << 45) | (x >> 19)) ^ ((x << 3) | (x >> 61)) ^ (x >> 6)
         }
 
-        for uint::range(16, 80) |t| {
+        foreach t in range(16u, 80) {
             self.W[t] = sigma1(self.W[t - 2]) + self.W[t - 7] + sigma0(self.W[t - 15]) +
                 self.W[t - 16];
         }
@@ -184,7 +181,7 @@ impl Engine512 {
         let mut h = self.H7;
 
         let mut t = 0;
-        for uint::range(0, 10) |_| {
+        foreach _ in range(0u, 10) {
             h += sum1(e) + ch(e, f, g) + K64[t] + self.W[t];
             d += h;
             h += sum0(a) + maj(a, b, c);
@@ -254,7 +251,7 @@ impl Engine512 {
 
         // add length
         if (self.W_idx > 14) {
-            for uint::range(self.W_idx, 16) |_| {
+            foreach _ in range(self.W_idx, 16) {
                 self.process_word(0);
             }
         }
@@ -452,7 +449,7 @@ impl Engine256 {
             ((x >> 17) | (x << 15)) ^ ((x >> 19) | (x << 13)) ^ (x >> 10)
         }
 
-        for uint::range(16, 64) |t| {
+        foreach t in range(16u, 64) {
             self.W[t] = sigma1(self.W[t - 2]) + self.W[t - 7] + sigma0(self.W[t - 15]) +
                 self.W[t - 16];
         }
@@ -467,7 +464,7 @@ impl Engine256 {
         let mut h = self.H7;
 
         let mut t = 0;
-        for uint::range(0, 8) |_| {
+        foreach _ in range(0u, 8) {
             h += sum1(e) + ch(e, f, g) + K32[t] + self.W[t];
             d += h;
             h += sum0(a) + maj(a, b, c);
@@ -536,7 +533,7 @@ impl Engine256 {
 
         // add length
         if (self.W_idx > 14) {
-            for uint::range(self.W_idx, 16) |_| {
+            foreach _ in range(self.W_idx, 16) {
                 self.process_word(0);
             }
         }
diff --git a/src/libextra/dlist.rs b/src/libextra/dlist.rs
index b2b39d34ce2..392eaf28157 100644
--- a/src/libextra/dlist.rs
+++ b/src/libextra/dlist.rs
@@ -607,7 +607,6 @@ pub fn check_links<T>(list: &DList<T>) {
 mod tests {
     use super::*;
     use std::rand;
-    use std::int;
     use extra::test;
 
     #[test]
@@ -944,7 +943,7 @@ mod tests {
     fn fuzz_test(sz: int) {
         let mut m = DList::new::<int>();
         let mut v = ~[];
-        for int::range(0i, sz) |i| {
+        foreach i in range(0, sz) {
             check_links(&m);
             let r: u8 = rand::random();
             match r % 6 {
diff --git a/src/libextra/fileinput.rs b/src/libextra/fileinput.rs
index 04bddeccf12..0de8c239d56 100644
--- a/src/libextra/fileinput.rs
+++ b/src/libextra/fileinput.rs
@@ -596,7 +596,7 @@ mod test {
         input.next_file(); // skip the rest of 1
 
         // read all lines from 1 (but don't read any from 2),
-        for uint::range(1, 4) |i| {
+        foreach i in range(1u, 4) {
             assert_eq!(input.read_line(), fmt!("1 %u", i));
         }
         // 1 is finished, but 2 hasn't been started yet, so this will
diff --git a/src/libextra/flatpipes.rs b/src/libextra/flatpipes.rs
index 7840345e276..9e7294df4b7 100644
--- a/src/libextra/flatpipes.rs
+++ b/src/libextra/flatpipes.rs
@@ -29,12 +29,12 @@ This example sends boxed integers across tasks using serialization.
 let (port, chan) = serial::pipe_stream();
 
 do task::spawn || {
-    for int::range(0, 10) |i| {
+    foreach i in range(0, 10) {
         chan.send(@i)
     }
 }
 
-for int::range(0, 10) |i| {
+foreach i in range(0, 10) {
     assert @i == port.recv()
 }
 ~~~
@@ -641,7 +641,6 @@ mod test {
     use flatpipes::{BytePort, FlatChan, FlatPort};
 
     use std::comm;
-    use std::int;
     use std::io::BytesWriter;
     use std::result;
     use std::task;
@@ -669,12 +668,12 @@ mod test {
         let (port, chan) = serial::pipe_stream();
 
         do task::spawn || {
-            for int::range(0, 10) |i| {
+            foreach i in range(0, 10) {
                 chan.send(i)
             }
         }
 
-        for int::range(0, 10) |i| {
+        foreach i in range(0, 10) {
             assert!(i == port.recv())
         }
     }
@@ -685,12 +684,12 @@ mod test {
         let (port, chan) = serial::pipe_stream();
 
         do task::spawn || {
-            for int::range(0, 10) |i| {
+            foreach i in range(0, 10) {
                 chan.send(@i)
             }
         }
 
-        for int::range(0, 10) |i| {
+        foreach i in range(0, 10) {
             assert!(@i == port.recv())
         }
     }
@@ -716,12 +715,12 @@ mod test {
         let (port, chan) = pod::pipe_stream();
 
         do task::spawn || {
-            for int::range(0, 10) |i| {
+            foreach i in range(0, 10) {
                 chan.send(i)
             }
         }
 
-        for int::range(0, 10) |i| {
+        foreach i in range(0, 10) {
             assert!(i == port.recv())
         }
     }
@@ -827,7 +826,7 @@ mod test {
             // TcpSocketBuf is a Writer!
             let chan = writer_chan(socket_buf);
 
-            for int::range(0, 10) |i| {
+            foreach i in range(0, 10) {
                 debug!("sending %?", i);
                 chan.send(i)
             }
@@ -850,7 +849,7 @@ mod test {
             // TcpSocketBuf is a Reader!
             let port = reader_port(socket_buf);
 
-            for int::range(0, 10) |i| {
+            foreach i in range(0, 10) {
                 let j = port.recv();
                 debug!("received %?", j);
                 assert_eq!(i, j);
diff --git a/src/libextra/num/bigint.rs b/src/libextra/num/bigint.rs
index 453ad857a05..6f575926cc6 100644
--- a/src/libextra/num/bigint.rs
+++ b/src/libextra/num/bigint.rs
@@ -1608,7 +1608,7 @@ mod biguint_tests {
     fn test_factor() {
         fn factor(n: uint) -> BigUint {
             let mut f= One::one::<BigUint>();
-            for uint::range(2, n + 1) |i| {
+            foreach i in range(2, n + 1) {
                 // FIXME(#6102): Assignment operator for BigInt causes ICE
                 // f *= BigUint::from_uint(i);
                 f = f * BigUint::from_uint(i);
diff --git a/src/libextra/ringbuf.rs b/src/libextra/ringbuf.rs
index 9cb45a2ec7a..f3f34a3becc 100644
--- a/src/libextra/ringbuf.rs
+++ b/src/libextra/ringbuf.rs
@@ -14,7 +14,6 @@
 //! extra::container::Deque`.
 
 use std::num;
-use std::uint;
 use std::vec;
 use std::iterator::{FromIterator, Invert, RandomAccessIterator, Extendable};
 
@@ -278,7 +277,7 @@ fn grow<T>(nelts: uint, loptr: &mut uint, elts: &mut ~[Option<T>]) {
     elts.reserve(newlen);
 
     /* fill with None */
-    for uint::range(elts.len(), elts.capacity()) |_| {
+    foreach _ in range(elts.len(), elts.capacity()) {
         elts.push(None);
     }
 
@@ -293,11 +292,11 @@ fn grow<T>(nelts: uint, loptr: &mut uint, elts: &mut ~[Option<T>]) {
 
     assert!(newlen - nelts/2 >= nelts);
     if lo <= (nelts - lo) { // A
-        for uint::range(0, lo) |i| {
+        foreach i in range(0u, lo) {
             elts.swap(i, nelts + i);
         }
     } else {                // B
-        for uint::range(lo, nelts) |i| {
+        foreach i in range(lo, nelts) {
             elts.swap(i, newlen - nelts + i);
         }
         *loptr += newlen - nelts;
@@ -345,7 +344,6 @@ mod tests {
     use super::*;
     use std::clone::Clone;
     use std::cmp::Eq;
-    use std::{int, uint};
     use extra::test;
 
     #[test]
@@ -463,21 +461,21 @@ mod tests {
     #[test]
     fn test_push_front_grow() {
         let mut deq = RingBuf::new();
-        for uint::range(0, 66) |i| {
+        foreach i in range(0u, 66) {
             deq.push_front(i);
         }
         assert_eq!(deq.len(), 66);
 
-        for uint::range(0, 66) |i| {
+        foreach i in range(0u, 66) {
             assert_eq!(*deq.get(i), 65 - i);
         }
 
         let mut deq = RingBuf::new();
-        for uint::range(0, 66) |i| {
+        foreach i in range(0u, 66) {
             deq.push_back(i);
         }
 
-        for uint::range(0, 66) |i| {
+        foreach i in range(0u, 66) {
             assert_eq!(*deq.get(i), i);
         }
     }
@@ -608,12 +606,12 @@ mod tests {
         assert_eq!(d.iter().next(), None);
         assert_eq!(d.iter().size_hint(), (0, Some(0)));
 
-        for int::range(0,5) |i| {
+        foreach i in range(0, 5) {
             d.push_back(i);
         }
         assert_eq!(d.iter().collect::<~[&int]>(), ~[&0,&1,&2,&3,&4]);
 
-        for int::range(6,9) |i| {
+        foreach i in range(6, 9) {
             d.push_front(i);
         }
         assert_eq!(d.iter().collect::<~[&int]>(), ~[&8,&7,&6,&0,&1,&2,&3,&4]);
@@ -633,12 +631,12 @@ mod tests {
         let mut d = RingBuf::new();
         assert_eq!(d.rev_iter().next(), None);
 
-        for int::range(0,5) |i| {
+        foreach i in range(0, 5) {
             d.push_back(i);
         }
         assert_eq!(d.rev_iter().collect::<~[&int]>(), ~[&4,&3,&2,&1,&0]);
 
-        for int::range(6,9) |i| {
+        foreach i in range(6, 9) {
             d.push_front(i);
         }
         assert_eq!(d.rev_iter().collect::<~[&int]>(), ~[&4,&3,&2,&1,&0,&6,&7,&8]);
@@ -649,7 +647,7 @@ mod tests {
         let mut d = RingBuf::new();
         assert!(d.mut_iter().next().is_none());
 
-        for uint::range(0,3) |i| {
+        foreach i in range(0u, 3) {
             d.push_front(i);
         }
 
@@ -672,7 +670,7 @@ mod tests {
         let mut d = RingBuf::new();
         assert!(d.mut_rev_iter().next().is_none());
 
-        for uint::range(0,3) |i| {
+        foreach i in range(0u, 3) {
             d.push_front(i);
         }
 
diff --git a/src/libextra/serialize.rs b/src/libextra/serialize.rs
index 95f3af006e8..ad8f9297bfb 100644
--- a/src/libextra/serialize.rs
+++ b/src/libextra/serialize.rs
@@ -21,7 +21,6 @@ Core encoding and decoding interfaces.
 use std::at_vec;
 use std::hashmap::{HashMap, HashSet};
 use std::trie::{TrieMap, TrieSet};
-use std::uint;
 use std::vec;
 use ringbuf::RingBuf;
 use container::Deque;
@@ -679,7 +678,7 @@ impl<D:Decoder,T:Decodable<D>> Decodable<D> for DList<T> {
     fn decode(d: &mut D) -> DList<T> {
         let mut list = DList::new();
         do d.read_seq |d, len| {
-            for uint::range(0, len) |i| {
+            foreach i in range(0u, len) {
                 list.push_back(d.read_seq_elt(i, |d| Decodable::decode(d)));
             }
         }
@@ -704,7 +703,7 @@ impl<D:Decoder,T:Decodable<D>> Decodable<D> for RingBuf<T> {
     fn decode(d: &mut D) -> RingBuf<T> {
         let mut deque = RingBuf::new();
         do d.read_seq |d, len| {
-            for uint::range(0, len) |i| {
+            foreach i in range(0u, len) {
                 deque.push_back(d.read_seq_elt(i, |d| Decodable::decode(d)));
             }
         }
@@ -737,7 +736,7 @@ impl<
     fn decode(d: &mut D) -> HashMap<K, V> {
         do d.read_map |d, len| {
             let mut map = HashMap::with_capacity(len);
-            for uint::range(0, len) |i| {
+            foreach i in range(0u, len) {
                 let key = d.read_map_elt_key(i, |d| Decodable::decode(d));
                 let val = d.read_map_elt_val(i, |d| Decodable::decode(d));
                 map.insert(key, val);
@@ -769,7 +768,7 @@ impl<
     fn decode(d: &mut D) -> HashSet<T> {
         do d.read_seq |d, len| {
             let mut set = HashSet::with_capacity(len);
-            for uint::range(0, len) |i| {
+            foreach i in range(0u, len) {
                 set.insert(d.read_seq_elt(i, |d| Decodable::decode(d)));
             }
             set
@@ -801,7 +800,7 @@ impl<
     fn decode(d: &mut D) -> TrieMap<V> {
         do d.read_map |d, len| {
             let mut map = TrieMap::new();
-            for uint::range(0, len) |i| {
+            foreach i in range(0u, len) {
                 let key = d.read_map_elt_key(i, |d| Decodable::decode(d));
                 let val = d.read_map_elt_val(i, |d| Decodable::decode(d));
                 map.insert(key, val);
@@ -828,7 +827,7 @@ impl<D: Decoder> Decodable<D> for TrieSet {
     fn decode(d: &mut D) -> TrieSet {
         do d.read_seq |d, len| {
             let mut set = TrieSet::new();
-            for uint::range(0, len) |i| {
+            foreach i in range(0u, len) {
                 set.insert(d.read_seq_elt(i, |d| Decodable::decode(d)));
             }
             set
@@ -861,7 +860,7 @@ impl<
     fn decode(d: &mut D) -> TreeMap<K, V> {
         do d.read_map |d, len| {
             let mut map = TreeMap::new();
-            for uint::range(0, len) |i| {
+            foreach i in range(0u, len) {
                 let key = d.read_map_elt_key(i, |d| Decodable::decode(d));
                 let val = d.read_map_elt_val(i, |d| Decodable::decode(d));
                 map.insert(key, val);
@@ -893,7 +892,7 @@ impl<
     fn decode(d: &mut D) -> TreeSet<T> {
         do d.read_seq |d, len| {
             let mut set = TreeSet::new();
-            for uint::range(0, len) |i| {
+            foreach i in range(0u, len) {
                 set.insert(d.read_seq_elt(i, |d| Decodable::decode(d)));
             }
             set
diff --git a/src/libextra/smallintmap.rs b/src/libextra/smallintmap.rs
index eba9e1a4ed1..e939f42ac90 100644
--- a/src/libextra/smallintmap.rs
+++ b/src/libextra/smallintmap.rs
@@ -30,7 +30,7 @@ impl<V> Container for SmallIntMap<V> {
     /// Return the number of elements in the map
     fn len(&self) -> uint {
         let mut sz = 0;
-        for uint::range(0, self.v.len()) |i| {
+        foreach i in range(0u, self.v.len()) {
             match self.v[i] {
                 Some(_) => sz += 1,
                 None => {}
@@ -123,13 +123,13 @@ impl<V> SmallIntMap<V> {
 
     /// Visit all key-value pairs in order
     pub fn each<'a>(&'a self, it: &fn(&uint, &'a V) -> bool) -> bool {
-        for uint::range(0, self.v.len()) |i| {
+        foreach i in range(0u, self.v.len()) {
             match self.v[i] {
               Some(ref elt) => if !it(&i, elt) { return false; },
               None => ()
             }
         }
-        return true;
+        true
     }
 
     /// Visit all keys in order
@@ -144,13 +144,13 @@ impl<V> SmallIntMap<V> {
 
     /// Iterate over the map and mutate the contained values
     pub fn mutate_values(&mut self, it: &fn(&uint, &mut V) -> bool) -> bool {
-        for uint::range(0, self.v.len()) |i| {
+        foreach i in range(0, self.v.len()) {
             match self.v[i] {
               Some(ref mut elt) => if !it(&i, elt) { return false; },
               None => ()
             }
         }
-        return true;
+        true
     }
 
     /// Visit all key-value pairs in reverse order
diff --git a/src/libextra/sort.rs b/src/libextra/sort.rs
index 9832ff7396b..ffcfc500b5e 100644
--- a/src/libextra/sort.rs
+++ b/src/libextra/sort.rs
@@ -12,7 +12,6 @@
 
 
 use std::cmp::{Eq, Ord};
-use std::uint;
 use std::util::swap;
 use std::vec;
 
@@ -471,7 +470,7 @@ impl<T:Clone + Ord> MergeState<T> {
         assert!(len1 != 0 && len2 != 0 && base1+len1 == base2);
 
         let mut tmp = ~[];
-        for uint::range(base1, base1+len1) |i| {
+        foreach i in range(base1, base1+len1) {
             tmp.push(array[i].clone());
         }
 
@@ -581,7 +580,7 @@ impl<T:Clone + Ord> MergeState<T> {
         assert!(len1 != 1 && len2 != 0 && base1 + len1 == base2);
 
         let mut tmp = ~[];
-        for uint::range(base2, base2+len2) |i| {
+        foreach i in range(base2, base2+len2) {
             tmp.push(array[i].clone());
         }
 
@@ -1022,7 +1021,6 @@ mod big_tests {
 
     use std::rand::RngUtil;
     use std::rand;
-    use std::uint;
     use std::vec;
 
     #[test]
@@ -1056,7 +1054,7 @@ mod big_tests {
 
     fn tabulate_unique(lo: uint, hi: uint) {
         fn isSorted<T:Ord>(arr: &[T]) {
-            for uint::range(0, arr.len()-1) |i| {
+            foreach i in range(0u, arr.len() - 1) {
                 if arr[i] > arr[i+1] {
                     fail!("Array not sorted");
                 }
@@ -1065,7 +1063,7 @@ mod big_tests {
 
         let mut rng = rand::rng();
 
-        for uint::range(lo, hi) |i| {
+        foreach i in range(lo, hi) {
             let n = 1 << i;
             let mut arr: ~[float] = do vec::from_fn(n) |_i| {
                 rng.gen()
@@ -1127,7 +1125,7 @@ mod big_tests {
 
     fn tabulate_managed(lo: uint, hi: uint) {
         fn isSorted<T:Ord>(arr: &[@T]) {
-            for uint::range(0, arr.len()-1) |i| {
+            foreach i in range(0u, arr.len() - 1) {
                 if arr[i] > arr[i+1] {
                     fail!("Array not sorted");
                 }
@@ -1136,7 +1134,7 @@ mod big_tests {
 
         let mut rng = rand::rng();
 
-        for uint::range(lo, hi) |i| {
+        foreach i in range(lo, hi) {
             let n = 1 << i;
             let arr: ~[@float] = do vec::from_fn(n) |_i| {
                 @rng.gen()
diff --git a/src/libextra/tempfile.rs b/src/libextra/tempfile.rs
index 0a2f32375f8..79b26003696 100644
--- a/src/libextra/tempfile.rs
+++ b/src/libextra/tempfile.rs
@@ -14,13 +14,12 @@
 use std::os;
 use std::rand::RngUtil;
 use std::rand;
-use std::uint;
 
 /// Attempts to make a temporary directory inside of `tmpdir` whose name will
 /// have the suffix `suffix`. If no directory can be created, None is returned.
 pub fn mkdtemp(tmpdir: &Path, suffix: &str) -> Option<Path> {
     let mut r = rand::rng();
-    for uint::range(0, 1000) |_| {
+    foreach _ in range(0u, 1000) {
         let p = tmpdir.push(r.gen_str(16) + suffix);
         if os::make_dir(&p, 0x1c0) { // 700
             return Some(p);
diff --git a/src/libextra/terminfo/parser/compiled.rs b/src/libextra/terminfo/parser/compiled.rs
index a6ed88fa559..869f7d9df2b 100644
--- a/src/libextra/terminfo/parser/compiled.rs
+++ b/src/libextra/terminfo/parser/compiled.rs
@@ -13,7 +13,7 @@
 /// ncurses-compatible compiled terminfo format parsing (term(5))
 
 
-use std::{vec, int, str};
+use std::{vec, str};
 use std::io::Reader;
 use std::hashmap::HashMap;
 use super::super::TermInfo;
@@ -222,7 +222,7 @@ pub fn parse(file: @Reader, longnames: bool) -> Result<~TermInfo, ~str> {
 
     let mut bools_map = HashMap::new();
     if bools_bytes != 0 {
-        for int::range(0, bools_bytes) |i| {
+        foreach i in range(0, bools_bytes) {
             let b = file.read_byte();
             if b < 0 {
                 error!("EOF reading bools after %? entries", i);
@@ -243,7 +243,7 @@ pub fn parse(file: @Reader, longnames: bool) -> Result<~TermInfo, ~str> {
 
     let mut numbers_map = HashMap::new();
     if numbers_count != 0 {
-        for int::range(0, numbers_count) |i| {
+        foreach i in range(0, numbers_count) {
             let n = file.read_le_u16();
             if n != 0xFFFF {
                 debug!("%s#%?", nnames[i], n);
@@ -258,7 +258,7 @@ pub fn parse(file: @Reader, longnames: bool) -> Result<~TermInfo, ~str> {
 
     if string_offsets_count != 0 {
         let mut string_offsets = vec::with_capacity(10);
-        for int::range(0, string_offsets_count) |_i| {
+        foreach _ in range(0, string_offsets_count) {
             string_offsets.push(file.read_le_u16());
         }
 
diff --git a/src/libextra/test.rs b/src/libextra/test.rs
index 37d833cc824..fd5d3fb21b1 100644
--- a/src/libextra/test.rs
+++ b/src/libextra/test.rs
@@ -36,7 +36,6 @@ use std::io;
 use std::result;
 use std::task;
 use std::to_str::ToStr;
-use std::u64;
 use std::f64;
 use std::os;
 
@@ -991,7 +990,7 @@ impl BenchHarness {
     pub fn iter(&mut self, inner:&fn()) {
         self.ns_start = precise_time_ns();
         let k = self.iterations;
-        for u64::range(0, k) |_| {
+        foreach _ in range(0u64, k) {
             inner();
         }
         self.ns_end = precise_time_ns();
diff --git a/src/libextra/treemap.rs b/src/libextra/treemap.rs
index 9493a6fb0e0..82c7bf6caf1 100644
--- a/src/libextra/treemap.rs
+++ b/src/libextra/treemap.rs
@@ -16,7 +16,6 @@
 use std::num;
 use std::util::{swap, replace};
 use std::iterator::{FromIterator, Extendable};
-use std::uint;
 
 // This is implemented as an AA tree, which is a simplified variation of
 // a red-black tree where red (horizontal) nodes can only be added
@@ -48,7 +47,7 @@ impl<K: Eq + TotalOrd, V: Eq> Eq for TreeMap<K, V> {
         } else {
             let mut x = self.iter();
             let mut y = other.iter();
-            for uint::range(0, self.len()) |_| {
+            foreach _ in range(0u, self.len()) {
                 if x.next().unwrap() != y.next().unwrap() {
                     return false
                 }
@@ -66,7 +65,7 @@ fn lt<K: Ord + TotalOrd, V: Ord>(a: &TreeMap<K, V>,
     let mut y = b.iter();
 
     let (a_len, b_len) = (a.len(), b.len());
-    for uint::range(0, num::min(a_len, b_len)) |_| {
+    foreach _ in range(0u, num::min(a_len, b_len)) {
         let (key_a, value_a) = x.next().unwrap();
         let (key_b, value_b) = y.next().unwrap();
         if *key_a < *key_b { return true; }