Allow fail messages to be caught, and introduce the Any trait

Some code cleanup, sorting of import blocks

Removed std::unstable::UnsafeArc's use of Either

Added run-fail tests for the new FailWithCause impls

Changed future_result and try to return Result<(), ~Any>.

- Internally, there is an enum of possible fail messages passend around.
- In case of linked failure or a string message, the ~Any gets
  lazyly allocated in future_results recv method.
- For that, future result now returns a wrapper around a Port.
- Moved and renamed task::TaskResult into rt::task::UnwindResult
  and made it an internal enum.
- Introduced a replacement typedef `type TaskResult = Result<(), ~Any>`.
This commit is contained in:
Marvin Löbel 2013-10-11 23:20:34 +02:00
parent cb5b21eba7
commit fa8e71a825
24 changed files with 913 additions and 215 deletions

View file

@ -151,6 +151,7 @@ pub mod clone;
pub mod hash;
pub mod container;
pub mod default;
pub mod any;
/* Common data structures */
@ -213,15 +214,16 @@ mod std {
pub use clone;
pub use cmp;
pub use condition;
pub use option;
pub use fmt;
pub use kinds;
pub use local_data;
pub use logging;
pub use sys;
pub use unstable;
pub use str;
pub use os;
pub use fmt;
pub use to_bytes;
pub use logging;
pub use option;
pub use os;
pub use str;
pub use sys;
pub use to_bytes;
pub use to_str;
pub use unstable;
}