cleanup .unwrap and .unwrap_err fixing io tests

This commit is contained in:
Erick Tryzelaar 2013-07-26 18:03:57 -07:00
parent 4eb95f6d1c
commit e308167a2f
3 changed files with 17 additions and 25 deletions

View file

@ -22,7 +22,6 @@ use std::cell::Cell;
use std::comm::{PortOne, oneshot, send_one, recv_one};
use std::either::{Either, Left, Right};
use std::io;
use std::result;
use std::run;
use std::task;
@ -208,7 +207,7 @@ fn json_encode<T:Encodable<json::Encoder>>(t: &T) -> ~str {
// FIXME(#5121)
fn json_decode<T:Decodable<json::Decoder>>(s: &str) -> T {
do io::with_str_reader(s) |rdr| {
let j = result::unwrap(json::from_reader(rdr));
let j = json::from_reader(rdr).unwrap();
let mut decoder = json::Decoder(j);
Decodable::decode(&mut decoder)
}

View file

@ -1851,12 +1851,10 @@ mod tests {
~"A hoopy frood who really knows where his towel is.";
debug!(frood.clone());
{
let out: @io::Writer =
result::unwrap(
io::file_writer(tmpfile, [io::Create, io::Truncate]));
let out: @io::Writer = io::file_writer(tmpfile, [io::Create, io::Truncate]).unwrap();
out.write_str(frood);
}
let inp: @io::Reader = result::unwrap(io::file_reader(tmpfile));
let inp: @io::Reader = io::file_reader(tmpfile).unwrap();
let frood2: ~str = inp.read_c_str();
debug!(frood2.clone());
assert_eq!(frood, frood2);

View file

@ -242,11 +242,23 @@ impl<T, E> Result<T, E> {
}
}
/// Unwraps a result, assuming it is an `ok(T)`
#[inline]
pub fn unwrap(self) -> T { unwrap(self) }
pub fn unwrap(self) -> T {
match self {
Ok(t) => t,
Err(_) => fail!("unwrap called on an err result")
}
}
/// Unwraps a result, assuming it is an `err(U)`
#[inline]
pub fn unwrap_err(self) -> E { unwrap_err(self) }
pub fn unwrap_err(self) -> E {
match self {
Err(u) => u,
Ok(_) => fail!("unwrap called on an ok result")
}
}
#[inline]
pub fn chain<U>(self, op: &fn(T) -> Result<U,E>) -> Result<U,E> {
@ -375,23 +387,6 @@ pub fn iter_vec2<S,T,U>(ss: &[S], ts: &[T],
return Ok(());
}
/// Unwraps a result, assuming it is an `ok(T)`
#[inline]
pub fn unwrap<T, U>(res: Result<T, U>) -> T {
match res {
Ok(t) => t,
Err(_) => fail!("unwrap called on an err result")
}
}
/// Unwraps a result, assuming it is an `err(U)`
#[inline]
pub fn unwrap_err<T, U>(res: Result<T, U>) -> U {
match res {
Err(u) => u,
Ok(_) => fail!("unwrap called on an ok result")
}
}
#[cfg(test)]
mod tests {