add a Clone impl for borrowed pointers

This commit is contained in:
Daniel Micay
2013-05-15 12:23:19 -04:00
parent 4e82610099
commit 22c3db5df7

View File

@@ -51,6 +51,12 @@ impl<T> Clone for @mut T {
fn clone(&self) -> @mut T { *self }
}
impl<'self, T> Clone for &'self T {
/// Return a shallow copy of the borrowed pointer.
#[inline(always)]
fn clone(&self) -> &'self T { *self }
}
macro_rules! clone_impl(
($t:ty) => {
impl Clone for $t {
@@ -102,3 +108,11 @@ fn test_managed_mut_clone() {
*b = 10;
assert!(a == b);
}
#[test]
fn test_borrowed_clone() {
let x = 5i;
let y: &int = &x;
let z: &int = (&y).clone();
assert_eq!(*z, 5);
}