]> git.lizzy.rs Git - rust.git/commitdiff
Rollup test fixes and rebase conflicts
authorAlex Crichton <alex@alexcrichton.com>
Fri, 2 Jan 2015 17:24:56 +0000 (09:24 -0800)
committerAlex Crichton <alex@alexcrichton.com>
Fri, 2 Jan 2015 18:50:13 +0000 (10:50 -0800)
31 files changed:
src/doc/reference.md
src/liballoc/boxed.rs
src/libcollections/bit.rs
src/libcore/option.rs
src/libcore/result.rs
src/librustc_trans/back/write.rs
src/libserialize/json.rs
src/libstd/io/mod.rs
src/libstd/io/timer.rs
src/libstd/path/windows.rs
src/libstd/sync/condvar.rs
src/libstd/sync/mpsc/select.rs
src/libstd/sync/mutex.rs
src/libstd/sys/common/helper_thread.rs
src/libstd/sys/unix/pipe.rs
src/libstd/sys/windows/mod.rs
src/libstd/sys/windows/timer.rs
src/libstd/thread.rs
src/test/bench/msgsend-pipes-shared.rs
src/test/bench/msgsend-pipes.rs
src/test/bench/rt-messaging-ping-pong.rs
src/test/bench/rt-parfib.rs
src/test/bench/shootout-binarytrees.rs
src/test/bench/shootout-chameneos-redux.rs
src/test/bench/shootout-fannkuch-redux.rs
src/test/bench/shootout-k-nucleotide-pipes.rs
src/test/bench/shootout-meteor.rs
src/test/bench/shootout-pfib.rs
src/test/bench/shootout-threadring.rs
src/test/bench/task-perf-jargon-metal-smoke.rs
src/test/compile-fail/issue-19883.rs

index ec44dc20386b48fb05ecb19122efd5105c1932e3..a8abb595034b5d7b54fb0b7e94d4d736cdbac314 100644 (file)
@@ -3177,7 +3177,6 @@ then the expression completes.
 Some examples of call expressions:
 
 ```
-# use std::str::from_str;
 # fn add(x: int, y: int) -> int { 0 }
 
 let x: int = add(1, 2);
index 415416199459f56b1b1bf12795a8a50b27582d52..5f8789bf1c70c80f3a105150dc5642eb18e5fde8 100644 (file)
@@ -113,28 +113,9 @@ fn hash(&self, state: &mut S) {
     }
 }
 
-#[cfg(not(stage0))]
-impl Box<Any> {
-    pub fn downcast<T: 'static>(self) -> Result<Box<T>, Box<Any>> {
-        if self.is::<T>() {
-            unsafe {
-                // Get the raw representation of the trait object
-                let to: TraitObject =
-                    mem::transmute::<Box<Any>, TraitObject>(self);
-
-                // Extract the data pointer
-                Ok(mem::transmute(to.data))
-            }
-        } else {
-            Err(self)
-        }
-    }
-}
-
 /// Extension methods for an owning `Any` trait object.
 #[unstable = "post-DST and coherence changes, this will not be a trait but \
               rather a direct `impl` on `Box<Any>`"]
-#[cfg(stage0)]
 pub trait BoxAny {
     /// Returns the boxed value if it is of type `T`, or
     /// `Err(Self)` if it isn't.
@@ -142,10 +123,10 @@ pub trait BoxAny {
     fn downcast<T: 'static>(self) -> Result<Box<T>, Self>;
 }
 
-#[stable]
-#[cfg(stage0)]
 impl BoxAny for Box<Any> {
     #[inline]
+    #[unstable = "method may be renamed with respect to other downcasting \
+                  methods"]
     fn downcast<T: 'static>(self) -> Result<Box<T>, Box<Any>> {
         if self.is::<T>() {
             unsafe {
index 91dea72ec8d795e2d218581d2276f68005697c00..6ea624df0343994e4705eba76774dce842ac30c5 100644 (file)
@@ -92,7 +92,7 @@
 use core::iter::{mod, FromIterator};
 use core::num::Int;
 use core::ops::Index;
-use core::slice::{Iter, IterMut};
+use core::slice;
 use core::{u8, u32, uint};
 use bitv_set; //so meta
 
index ac0a6a78baed2caf31557c30b79adb245bf03497..d831a57893bd77754980a174b6ff9d9452e507c4 100644 (file)
@@ -723,8 +723,6 @@ impl<T: Default> Option<T> {
     /// `None` on error.
     ///
     /// ```
-    /// use std::str::from_str;
-    ///
     /// let good_year_from_input = "1909";
     /// let bad_year_from_input = "190blarg";
     /// let good_year = good_year_from_input.parse().unwrap_or_default();
index 3ebe191930b1450bc892ec550b4b65fe99d1a4fa..bd1c6dbcf1e9a4166d4a111cbbc32166dab2969f 100644 (file)
@@ -449,7 +449,6 @@ pub fn as_mut_slice(&mut self) -> &mut [T] {
     ///
     /// ```
     /// use std::io::IoResult;
-    /// use std::str::from_str;
     ///
     /// let mut buffer = &mut b"1\n2\n3\n4\n";
     ///
index cb1954f3ff7638a6ecf97c8555d6ce68b8cff0e0..5cd62675c1dc3c53da7f6067f5e11d8c2a09911f 100644 (file)
@@ -23,7 +23,6 @@
 use syntax::diagnostic::{Emitter, Handler, Level, mk_handler};
 
 use std::c_str::{ToCStr, CString};
-use std::comm::channel;
 use std::io::Command;
 use std::io::fs;
 use std::iter::Unfold;
index e0122ad106fa07c2a7c9d0ddf79b15bae787aa2d..a87044bb3b3ba02e9ebe7902ea3ebd0bb1447ec8 100644 (file)
@@ -402,7 +402,7 @@ fn escape_str(wr: &mut fmt::Writer, v: &str) -> fmt::Result {
 }
 
 fn escape_char(writer: &mut fmt::Writer, v: char) -> fmt::Result {
-    let mut buf = [0, .. 4];
+    let mut buf = [0; 4];
     let n = v.encode_utf8(&mut buf).unwrap();
     let buf = unsafe { str::from_utf8_unchecked(buf[0..n]) };
     escape_str(writer, buf)
index 813edc3eb53b5eb11624dd502e9f354b93960a9d..539fcb23bb05d0ba1721dc026f2e9a28552113bd 100644 (file)
@@ -1918,7 +1918,7 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
 #[cfg(test)]
 mod tests {
     use self::BadReaderBehavior::*;
-    use super::{IoResult, Reader, MemReader, NoProgress, InvalidInput};
+    use super::{IoResult, MemReader, NoProgress, InvalidInput};
     use prelude::v1::*;
     use uint;
 
index de4270e705b37578c51a360b2b1a75cecb7062e6..e073f76af825ce77628696d262a99af136589f6b 100644 (file)
@@ -225,8 +225,6 @@ fn in_ms_u64(d: Duration) -> u64 {
 
 #[cfg(test)]
 mod test {
-    use prelude::v1::*;
-
     use super::Timer;
     use thread::Thread;
     use time::Duration;
index e047afc8eee4866ab5d757d5e1ec11f4c6b74d9f..a6d30dc5778d58b5522307d3d5418ff6cb82b080 100644 (file)
@@ -1119,10 +1119,6 @@ fn prefix_len(p: Option<PathPrefix>) -> uint {
 
 #[cfg(test)]
 mod tests {
-    use prelude::v1::Option::{mod, Some, None};
-    use prelude::v1::{Vec, Clone, AsSlice, SliceExt, CloneSliceExt, IteratorExt};
-    use prelude::v1::{DoubleEndedIteratorExt, Str, ToString, GenericPath};
-
     use super::PathPrefix::*;
     use super::parse_prefix;
     use super::*;
index 8d40a854aaf385c5a5a7200aaabe9f6df5988367..19b8f5e62cf5532eacc2491f9ebe043315b3fc5b 100644 (file)
@@ -307,7 +307,7 @@ fn notify_one() {
         static C: StaticCondvar = CONDVAR_INIT;
         static M: StaticMutex = MUTEX_INIT;
 
-        let mut g = M.lock().unwrap();
+        let g = M.lock().unwrap();
         let _t = Thread::spawn(move|| {
             let _g = M.lock().unwrap();
             C.notify_one();
@@ -386,6 +386,6 @@ fn two_mutexes() {
         g = C.wait(g).unwrap();
         drop(g);
 
-        C.wait(M2.lock().unwrap()).unwrap();
+        let _ = C.wait(M2.lock().unwrap()).unwrap();
     }
 }
index fc1e0b34977e4e764570f5b16a6bbcb9b4be94a4..43554d7c335a4c4471084162593651789fcc2c64 100644 (file)
@@ -337,7 +337,6 @@ mod test {
     use prelude::v1::*;
 
     use thread::Thread;
-    use super::*;
     use sync::mpsc::*;
 
     // Don't use the libstd version so we can pull in the right Select structure
index 3f155b02065d3606bfb0799aa4384ecff614b4e0..270c57f1ec07b111468b5274b1ba174f0c38f10c 100644 (file)
@@ -447,7 +447,7 @@ fn test_arc_condvar_poison() {
     fn test_mutex_arc_poison() {
         let arc = Arc::new(Mutex::new(1i));
         let arc2 = arc.clone();
-        Thread::spawn(move|| {
+        let _ = Thread::spawn(move|| {
             let lock = arc2.lock().unwrap();
             assert_eq!(*lock, 2);
         }).join();
index 1ce42aaa175da7d07c24f448a03b8a547a6aba5a..bdf1bf3dfd02ceca099d0be7d70e2cc3324be749 100644 (file)
@@ -23,7 +23,6 @@
 use prelude::v1::*;
 
 use cell::UnsafeCell;
-use comm::{channel, Sender, Receiver};
 use mem;
 use rt;
 use sync::{StaticMutex, StaticCondvar};
index 0ab213cd0af0974fc68c3f8a532ddb249b210426..623f3f6a89c9db9d7e423c086bf17d2d8881fd3c 100644 (file)
@@ -10,8 +10,6 @@
 
 use prelude::v1::*;
 
-use prelude::*;
-
 use libc;
 use c_str::CString;
 use mem;
index d625e63952a2722361abb04b5fa7700d6da7de22..1034f0615d9947754672a679affbdd4eaf1bcbf2 100644 (file)
 use mem;
 use io::{mod, IoResult, IoError};
 use sync::{Once, ONCE_INIT};
-use comm::Sender;
 
 macro_rules! helper_init { (static $name:ident: Helper<$m:ty>) => (
     static $name: Helper<$m> = Helper {
         lock: ::sync::MUTEX_INIT,
         cond: ::sync::CONDVAR_INIT,
-        chan: ::cell::UnsafeCell { value: 0 as *mut Sender<$m> },
+        chan: ::cell::UnsafeCell { value: 0 as *mut ::sync::mpsc::Sender<$m> },
         signal: ::cell::UnsafeCell { value: 0 },
         initialized: ::cell::UnsafeCell { value: false },
         shutdown: ::cell::UnsafeCell { value: false },
index 485dc251050145a4c644247230806b0b104bf70a..343b78543bfd01dcd35107a3f9d2b411c2a46c1b 100644 (file)
 
 use libc;
 use ptr;
-use comm;
 
-use comm::{channel, Sender, Receiver};
 use io::IoResult;
+use sync::mpsc::{channel, Sender, Receiver, TryRecvError};
 use sys::c;
 use sys::fs::FileDesc;
 use sys_common::helper_thread::Helper;
@@ -72,7 +71,7 @@ fn helper(input: libc::HANDLE, messages: Receiver<Req>, _: ()) {
                         chans.push((c, one));
                     }
                     Ok(RemoveTimer(obj, c)) => {
-                        c.send(());
+                        c.send(()).unwrap();
                         match objs.iter().position(|&o| o == obj) {
                             Some(i) => {
                                 drop(objs.remove(i));
@@ -81,7 +80,7 @@ fn helper(input: libc::HANDLE, messages: Receiver<Req>, _: ()) {
                             None => {}
                         }
                     }
-                    Err(comm::Disconnected) => {
+                    Err(TryRecvError::Disconnected) => {
                         assert_eq!(objs.len(), 1);
                         assert_eq!(chans.len(), 0);
                         break 'outer;
@@ -133,7 +132,7 @@ fn remove(&mut self) {
 
         let (tx, rx) = channel();
         HELPER.send(RemoveTimer(self.obj, tx));
-        rx.recv();
+        rx.recv().unwrap();
 
         self.on_worker = false;
     }
index 9a6fcab6a88ad0617c5e4bb22fb05971b87d2b05..3c87309dabcf3ceb06e91edc35f009df841eb00e 100644 (file)
@@ -443,8 +443,8 @@ mod test {
     use prelude::v1::*;
 
     use any::{Any, AnyRefExt};
-    use boxed::BoxAny;
     use sync::mpsc::{channel, Sender};
+    use boxed::BoxAny;
     use result;
     use std::io::{ChanReader, ChanWriter};
     use super::{Thread, Builder};
index 94b7e58a54c1c9d56736c975dff98932120302fd..285d193e7da8bcba46d631f8e221a25e631311f9 100644 (file)
@@ -18,8 +18,7 @@
 // different scalability characteristics compared to the select
 // version.
 
-use std::comm::{channel, Sender, Receiver};
-use std::comm;
+use std::sync::mpsc::{channel, Sender, Receiver};
 use std::os;
 use std::str::from_str;
 use std::thread::Thread;
@@ -38,8 +37,8 @@ fn server(requests: &Receiver<request>, responses: &Sender<uint>) {
     let mut count = 0u;
     let mut done = false;
     while !done {
-        match requests.recv_opt() {
-          Ok(request::get_count) => { responses.send(count.clone()); }
+        match requests.recv() {
+          Ok(request::get_count) => { responses.send(count.clone()).unwrap(); }
           Ok(request::bytes(b)) => {
             //println!("server: received {} bytes", b);
             count += b;
@@ -48,7 +47,7 @@ fn server(requests: &Receiver<request>, responses: &Sender<uint>) {
           _ => { }
         }
     }
-    responses.send(count);
+    responses.send(count).unwrap();
     //println!("server exiting");
 }
 
@@ -69,7 +68,7 @@ fn run(args: &[String]) {
             worker_results.push(Thread::spawn(move|| {
                 for _ in range(0u, size / workers) {
                     //println!("worker {}: sending {} bytes", i, num_bytes);
-                    to_child.send(request::bytes(num_bytes));
+                    to_child.send(request::bytes(num_bytes)).unwrap();
                 }
                 //println!("worker {} exiting", i);
             }));
@@ -83,9 +82,9 @@ fn run(args: &[String]) {
         }
 
         //println!("sending stop message");
-        to_child.send(request::stop);
+        to_child.send(request::stop).unwrap();
         move_out(to_child);
-        result = Some(from_child.recv());
+        result = Some(from_child.recv().unwrap());
     });
     let result = result.unwrap();
     print!("Count is {}\n", result);
index 4fb84c8610695e85d2c55d6a91371e9a4310f1b9..ef22aac776e0334727370b5fcba0cdeedd431af4 100644 (file)
@@ -14,9 +14,8 @@
 //
 // I *think* it's the same, more or less.
 
-use std::comm::{channel, Sender, Receiver};
+use std::sync::mpsc::{channel, Sender, Receiver};
 use std::os;
-use std::str::from_str;
 use std::thread::Thread;
 use std::time::Duration;
 use std::uint;
@@ -33,7 +32,7 @@ fn server(requests: &Receiver<request>, responses: &Sender<uint>) {
     let mut count: uint = 0;
     let mut done = false;
     while !done {
-        match requests.recv_opt() {
+        match requests.recv() {
           Ok(request::get_count) => { responses.send(count.clone()); }
           Ok(request::bytes(b)) => {
             //println!("server: received {} bytes", b);
@@ -50,8 +49,8 @@ fn server(requests: &Receiver<request>, responses: &Sender<uint>) {
 fn run(args: &[String]) {
     let (to_parent, from_child) = channel();
 
-    let size = from_str::<uint>(args[1].as_slice()).unwrap();
-    let workers = from_str::<uint>(args[2].as_slice()).unwrap();
+    let size = args[1].parse::<uint>().unwrap();
+    let workers = args[2].parse::<uint>().unwrap();
     let num_bytes = 100;
     let mut result = None;
     let mut to_parent = Some(to_parent);
@@ -93,7 +92,7 @@ fn run(args: &[String]) {
         //println!("sending stop message");
         //to_child.send(stop);
         //move_out(to_child);
-        result = Some(from_child.recv());
+        result = Some(from_child.recv().unwrap());
     });
     let result = result.unwrap();
     print!("Count is {}\n", result);
index d3a340d488b57e084aa6cb9a3e2845685653ac80..de9e6629fbfc04d57c361723d5572491bc14d583 100644 (file)
@@ -17,7 +17,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-use std::comm::channel;
+use std::sync::mpsc::channel;
 use std::os;
 use std::str::from_str;
 use std::thread::Thread;
index 0a513c32aafc827d9ad4ce1cb2733aebee20ef6c..8b212555d4011cdb2d7d1a301d2b4172127befd8 100644 (file)
@@ -8,9 +8,8 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-use std::comm::channel;
+use std::sync::mpsc::channel;
 use std::os;
-use std::str::from_str;
 use std::thread::Thread;
 use std::uint;
 
@@ -28,7 +27,7 @@ fn parfib(n: uint) -> uint {
         tx.send(parfib(n-1));
     }).detach();
     let m2 = parfib(n-2);
-    return (rx.recv() + m2);
+    return (rx.recv().unwrap() + m2);
 }
 
 fn main() {
@@ -36,7 +35,7 @@ fn main() {
     let args = os::args();
     let args = args.as_slice();
     let n = if args.len() == 2 {
-        from_str::<uint>(args[1].as_slice()).unwrap()
+        args[1].parse::<uint>().unwrap()
     } else {
         10
     };
index 236e1cbb217352385246cecd807bdc73b65368b5..c7a43d61a9a86b1215626a292fbbdafc597ca76f 100644 (file)
@@ -75,7 +75,7 @@ fn main() {
     } else if args.len() <= 1u {
         8
     } else {
-        from_str(args[1].as_slice()).unwrap()
+        args[1].parse().unwrap()
     };
     let min_depth = 4;
     let max_depth = if min_depth + 2 > n {min_depth + 2} else {n};
index 6bbf6cde4ea29f37b03bcc61a0a1357c9209c673..030c627b6f71e4df6c23ae8daadbd8f7d766628f 100644 (file)
@@ -41,7 +41,7 @@
 // no-pretty-expanded
 
 use self::Color::{Red, Yellow, Blue};
-use std::comm::{channel, Sender, Receiver};
+use std::sync::mpsc::{channel, Sender, Receiver};
 use std::fmt;
 use std::str::from_str;
 use std::thread::Thread;
@@ -154,7 +154,7 @@ fn creature(
 
     loop {
         // ask for a pairing
-        to_rendezvous.send(CreatureInfo {name: name, color: color});
+        to_rendezvous.send(CreatureInfo {name: name, color: color}).unwrap();
 
         // log and change, or quit
         match rendezvous.next() {
@@ -172,7 +172,7 @@ fn creature(
     }
     // log creatures met and evil clones of self
     let report = format!("{}{}", creatures_met, Number(evil_clones_met));
-    to_rendezvous_log.send(report);
+    to_rendezvous_log.send(report).unwrap();
 }
 
 fn rendezvous(nn: uint, set: Vec<Color>) {
@@ -204,13 +204,13 @@ fn rendezvous(nn: uint, set: Vec<Color>) {
 
     // set up meetings...
     for _ in range(0, nn) {
-        let fst_creature = from_creatures.recv();
-        let snd_creature = from_creatures.recv();
+        let fst_creature = from_creatures.recv().unwrap();
+        let snd_creature = from_creatures.recv().unwrap();
 
         creatures_met += 2;
 
-        to_creature[fst_creature.name].send(snd_creature);
-        to_creature[snd_creature.name].send(fst_creature);
+        to_creature[fst_creature.name].send(snd_creature).unwrap();
+        to_creature[snd_creature.name].send(fst_creature).unwrap();
     }
 
     // tell each creature to stop
index 8e594b861803f57be4811fd10c9353577598231e..7dca2b24fc11e8fa9b9ef817f74ee26d9fd4e990 100644 (file)
@@ -186,7 +186,7 @@ fn fannkuch(n: i32) -> (i32, i32) {
 fn main() {
     let n = std::os::args().as_slice()
         .get(1)
-        .and_then(|arg| from_str(arg.as_slice()))
+        .and_then(|arg| arg.parse())
         .unwrap_or(2i32);
 
     let (checksum, maxflips) = fannkuch(n);
index b59eef916dc095a93b800d8a7d9002f57d9a0225..d92d30ca844af51570a4d608aa43e66355e09f83 100644 (file)
@@ -20,7 +20,7 @@
 use std::ascii::{AsciiExt, OwnedAsciiExt};
 use std::cmp::Ordering::{mod, Less, Greater, Equal};
 use std::collections::HashMap;
-use std::comm::{channel, Sender, Receiver};
+use std::sync::mpsc::{channel, Sender, Receiver};
 use std::mem::replace;
 use std::num::Float;
 use std::option;
@@ -120,7 +120,7 @@ fn make_sequence_processor(sz: uint,
 
    loop {
 
-       line = from_parent.recv();
+       line = from_parent.recv().unwrap();
        if line == Vec::new() { break; }
 
        carry.push_all(line.as_slice());
@@ -222,6 +222,6 @@ fn main() {
 
    // now fetch and print result messages
    for (ii, _sz) in sizes.iter().enumerate() {
-       println!("{}", from_child[ii].recv());
+       println!("{}", from_child[ii].recv().unwrap());
    }
 }
index 2e229a50d16ef60574e98cd372158c9c8b62a263..0c3152d4780f2b8382432ff02f64166815d18724 100644 (file)
@@ -40,7 +40,7 @@
 
 // no-pretty-expanded FIXME #15189
 
-use std::comm::channel;
+use std::sync::mpsc::channel;
 use std::sync::Arc;
 use std::thread::Thread;
 
@@ -315,13 +315,13 @@ fn par_search(masks: Vec<Vec<Vec<u64>>>) -> Data {
         Thread::spawn(move|| {
             let mut data = Data::new();
             search(&*masks, m, 1, List::Cons(m, &List::Nil), &mut data);
-            tx.send(data);
+            tx.send(data).unwrap();
         }).detach();
     }
 
     // collecting the results
     drop(tx);
-    let mut data = rx.recv();
+    let mut data = rx.recv().unwrap();
     for d in rx.iter() { data.reduce_from(d); }
     data
 }
index e58303a724adbd178903fb5de49291f648a11264..78b5ac00b45e0f4591df351d2ab4eea229101d92 100644 (file)
@@ -20,7 +20,7 @@
 
 extern crate getopts;
 
-use std::comm::{channel, Sender};
+use std::sync::mpsc::{channel, Sender};
 use std::os;
 use std::result::Result::{Ok, Err};
 use std::str::from_str;
 fn fib(n: int) -> int {
     fn pfib(tx: &Sender<int>, n: int) {
         if n == 0 {
-            tx.send(0);
+            tx.send(0).unwrap();
         } else if n <= 2 {
-            tx.send(1);
+            tx.send(1).unwrap();
         } else {
             let (tx1, rx) = channel();
             let tx2 = tx1.clone();
             Thread::spawn(move|| pfib(&tx2, n - 1)).detach();
             let tx2 = tx1.clone();
             Thread::spawn(move|| pfib(&tx2, n - 2)).detach();
-            tx.send(rx.recv() + rx.recv());
+            tx.send(rx.recv().unwrap() + rx.recv().unwrap());
         }
     }
 
     let (tx, rx) = channel();
     Thread::spawn(move|| pfib(&tx, n) ).detach();
-    rx.recv()
+    rx.recv().unwrap()
 }
 
 struct Config {
index 94d958ea8d5243f8e8f1086acb55c1ee339d4dac..543597d8c8118401180698d55389f6c70453103e 100644 (file)
@@ -38,7 +38,7 @@
 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 // OF THE POSSIBILITY OF SUCH DAMAGE.
 
-use std::comm::{channel, Sender, Receiver};
+use std::sync::mpsc::{channel, Sender, Receiver};
 use std::str::from_str;
 use std::thread::Thread;
 
index 287b3fc6c460d5cea72c9da6660d802b2d11e994..a0278a63a51d9c6a389cb0068bd09728271dc078 100644 (file)
 
 // ignore-pretty very bad with line comments
 
-use std::comm::{mod, channel};
+use std::sync::mpsc::{channel, Sender};
 use std::os;
 use std::str::from_str;
 use std::task;
 use std::thread::Thread;
 use std::uint;
 
-fn child_generation(gens_left: uint, tx: comm::Sender<()>) {
+fn child_generation(gens_left: uint, tx: Sender<()>) {
     // This used to be O(n^2) in the number of generations that ever existed.
     // With this code, only as many generations are alive at a time as tasks
     // alive at a time,
@@ -35,7 +35,7 @@ fn child_generation(gens_left: uint, tx: comm::Sender<()>) {
         if gens_left > 0 {
             child_generation(gens_left - 1, tx); // recurse
         } else {
-            tx.send(())
+            tx.send(()).unwrap()
         }
     }).detach();
 }
@@ -52,7 +52,7 @@ fn main() {
 
     let (tx, rx) = channel();
     child_generation(from_str::<uint>(args[1].as_slice()).unwrap(), tx);
-    if rx.recv_opt().is_err() {
+    if rx.recv().is_err() {
         panic!("it happened when we slumbered");
     }
 }
index 5f1d0f4ab7bcf62c6783f0166621e3420dc1b528..b86e553e100ddc289e0847eadd3cf40543ecdc67 100644 (file)
@@ -19,7 +19,7 @@ trait From<Src> {
 trait To {
     // This is a typo, the return type should be `<Dst as From<Self>>::Output`
     fn to<Dst: From<Self>>(self) -> <Dst as From<Self>>::Dst {
-    //~ error: the trait `core::kinds::Sized` is not implemented
+    //~^ error: the trait `core::kinds::Sized` is not implemented
         From::from(self)
     }
 }