diff --git a/src/liballoc/arc.rs b/src/liballoc/arc.rs index cccd5cb63ef..6af4083edb2 100644 --- a/src/liballoc/arc.rs +++ b/src/liballoc/arc.rs @@ -110,6 +110,7 @@ impl Arc { } } +#[unstable] impl Clone for Arc { /// Duplicate an atomically reference counted wrapper. /// @@ -236,6 +237,7 @@ impl Weak { } } +#[unstable] impl Clone for Weak { #[inline] fn clone(&self) -> Weak { diff --git a/src/liballoc/owned.rs b/src/liballoc/owned.rs index fa7a8df5035..6f5d3293556 100644 --- a/src/liballoc/owned.rs +++ b/src/liballoc/owned.rs @@ -42,6 +42,7 @@ impl Default for Box { fn default() -> Box { box Default::default() } } +#[unstable] impl Clone for Box { /// Return a copy of the owned box. #[inline] diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs index c6e81fa7f7c..a3ca72f1547 100644 --- a/src/liballoc/rc.rs +++ b/src/liballoc/rc.rs @@ -143,6 +143,7 @@ impl Drop for Rc { } } +#[unstable] impl Clone for Rc { #[inline] fn clone(&self) -> Rc { @@ -224,6 +225,7 @@ impl Drop for Weak { } } +#[unstable] impl Clone for Weak { #[inline] fn clone(&self) -> Weak { diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs index e3ed3ffbabf..0ee0c5b87ae 100644 --- a/src/libcollections/vec.rs +++ b/src/libcollections/vec.rs @@ -316,6 +316,7 @@ impl Vec { } } +#[unstable] impl Clone for Vec { fn clone(&self) -> Vec { let len = self.len; diff --git a/src/libcore/cell.rs b/src/libcore/cell.rs index fd694c04f55..ab701b76026 100644 --- a/src/libcore/cell.rs +++ b/src/libcore/cell.rs @@ -192,6 +192,7 @@ impl Cell { } } +#[unstable] impl Clone for Cell { fn clone(&self) -> Cell { Cell::new(self.get()) @@ -298,6 +299,7 @@ impl RefCell { } } +#[unstable] impl Clone for RefCell { fn clone(&self) -> RefCell { RefCell::new(self.borrow().clone()) diff --git a/src/libcore/clone.rs b/src/libcore/clone.rs index 4fb887bad94..04f01db3147 100644 --- a/src/libcore/clone.rs +++ b/src/libcore/clone.rs @@ -21,6 +21,8 @@ the `clone` method. */ +#![unstable] + /// A common trait for cloning an object. pub trait Clone { /// Returns a copy of the value. The contents of owned pointers @@ -34,6 +36,7 @@ pub trait Clone { /// but can be overridden to reuse the resources of `a` to avoid unnecessary /// allocations. #[inline(always)] + #[experimental = "this function is mostly unused"] fn clone_from(&mut self, source: &Self) { *self = source.clone() } @@ -88,6 +91,7 @@ clone_impl!(char) macro_rules! extern_fn_clone( ($($A:ident),*) => ( + #[experimental = "this may not be sufficient for fns with region parameters"] impl<$($A,)* ReturnType> Clone for extern "Rust" fn($($A),*) -> ReturnType { /// Return a copy of a function pointer #[inline] diff --git a/src/libcore/tuple.rs b/src/libcore/tuple.rs index 18511474ecf..3508da5d516 100644 --- a/src/libcore/tuple.rs +++ b/src/libcore/tuple.rs @@ -104,6 +104,7 @@ macro_rules! tuple_impls { )+ } + #[unstable] impl<$($T:Clone),+> Clone for ($($T,)+) { fn clone(&self) -> ($($T,)+) { ($(self.$refN().clone(),)+) diff --git a/src/libstd/gc.rs b/src/libstd/gc.rs index e889752f4fc..0f30e7231b1 100644 --- a/src/libstd/gc.rs +++ b/src/libstd/gc.rs @@ -37,6 +37,7 @@ pub struct Gc { marker: marker::NoSend, } +#[unstable] impl Clone for Gc { /// Clone the pointer only #[inline]