diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2012-08-30 15:54:05 -0700 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2012-08-30 21:11:28 -0700 |
| commit | 7649860339a0e298be75522d41d243b3bbb178b6 (patch) | |
| tree | bc41477cbefe57d00a1061963901246954f26d92 /src | |
| parent | afeaf7d88cda883428f0b18123f164e5d5a7e4f5 (diff) | |
libcore: result::unwrap should use moves
Diffstat (limited to 'src')
| -rw-r--r-- | src/libcore/result.rs | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/src/libcore/result.rs b/src/libcore/result.rs index 1ac1b78f3ec..b9c1d8cbc0e 100644 --- a/src/libcore/result.rs +++ b/src/libcore/result.rs @@ -341,15 +341,10 @@ fn iter_vec2<S,T,U:copy>(ss: &[S], ts: &[T], } /// Unwraps a result, assuming it is an `ok(T)` -fn unwrap<T, U>(-res: Result<T, U>) -> T { - unsafe { - let addr = match res { - Ok(x) => ptr::addr_of(x), - Err(_) => fail ~"error result" - }; - let liberated_value = unsafe::reinterpret_cast(*addr); - unsafe::forget(res); - return liberated_value; +fn unwrap<T, U>(+res: Result<T, U>) -> T { + match move res { + Ok(move t) => t, + Err(_) => fail ~"unwrap called on an err result" } } |
