add a Clone impl for borrowed pointers
This commit is contained in:
@@ -51,6 +51,12 @@ impl<T> Clone for @mut T {
|
|||||||
fn clone(&self) -> @mut T { *self }
|
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(
|
macro_rules! clone_impl(
|
||||||
($t:ty) => {
|
($t:ty) => {
|
||||||
impl Clone for $t {
|
impl Clone for $t {
|
||||||
@@ -102,3 +108,11 @@ fn test_managed_mut_clone() {
|
|||||||
*b = 10;
|
*b = 10;
|
||||||
assert!(a == b);
|
assert!(a == b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_borrowed_clone() {
|
||||||
|
let x = 5i;
|
||||||
|
let y: &int = &x;
|
||||||
|
let z: &int = (&y).clone();
|
||||||
|
assert_eq!(*z, 5);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user