From 85a8e6b80ae91eb00a0bce96a5cec8017e1b37da Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 30 Apr 2014 20:34:41 -0700 Subject: [PATCH] core: Inherit the finally module --- src/{libstd/unstable => libcore}/finally.rs | 6 ++++++ src/libcore/lib.rs | 1 + src/libstd/unstable/mod.rs | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) rename src/{libstd/unstable => libcore}/finally.rs (94%) diff --git a/src/libstd/unstable/finally.rs b/src/libcore/finally.rs similarity index 94% rename from src/libstd/unstable/finally.rs rename to src/libcore/finally.rs index 3d00c0ac74a6..6d02e6e3a17d 100644 --- a/src/libstd/unstable/finally.rs +++ b/src/libcore/finally.rs @@ -30,11 +30,17 @@ use std::unstable::finally::Finally; ``` */ +#![experimental] + use ops::Drop; #[cfg(test)] use task::failing; +/// A trait for executing a destructor unconditionally after a block of code, +/// regardless of whether the blocked fails. pub trait Finally { + /// Executes this object, unconditionally running `dtor` after this block of + /// code has run. fn finally(&mut self, dtor: ||) -> T; } diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs index dd64148aa2b0..5206ba1f32a8 100644 --- a/src/libcore/lib.rs +++ b/src/libcore/lib.rs @@ -37,4 +37,5 @@ pub mod container; /* Core types and methods on primitives */ +pub mod finally; pub mod char; diff --git a/src/libstd/unstable/mod.rs b/src/libstd/unstable/mod.rs index 372fcc396b13..81aa5506ed89 100644 --- a/src/libstd/unstable/mod.rs +++ b/src/libstd/unstable/mod.rs @@ -13,9 +13,10 @@ use prelude::*; use libc::uintptr_t; +pub use core::finally; + pub mod dynamic_lib; -pub mod finally; pub mod simd; pub mod sync; pub mod mutex;