Skip to content

Commit a4af562

Browse files
author
James Miller
committed
---
yaml --- r: 50463 b: refs/heads/auto c: e2bffb7 h: refs/heads/master i: 50461: 507eb03 50459: d482b5e 50455: 3ecfc1a 50447: d278235 50431: 12368bd v: v3
1 parent ffb1821 commit a4af562

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: 0cc903015b395c0d9eada3fe3376f2447cc835b6
17+
refs/heads/auto: e2bffb79717f7622e97870c3194435b06e3e56bc
1818
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167

branches/auto/src/libcore/tuple.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
//! Operations on tuples
1212
13+
use clone::Clone;
1314
use kinds::Copy;
1415
use vec;
1516

@@ -46,6 +47,15 @@ impl<T:Copy,U:Copy> CopyableTuple<T, U> for (T, U) {
4647

4748
}
4849

50+
impl<T:Clone,U:Clone> Clone for (T, U) {
51+
fn clone(&self) -> (T, U) {
52+
let (a, b) = match *self {
53+
(ref a, ref b) => (a, b)
54+
};
55+
(a.clone(), b.clone())
56+
}
57+
}
58+
4959
pub trait ImmutableTuple<T, U> {
5060
fn first_ref(&self) -> &'self T;
5161
fn second_ref(&self) -> &'self U;
@@ -252,3 +262,10 @@ fn test_tuple() {
252262
assert!(('a', 2).swap() == (2, 'a'));
253263
}
254264
265+
#[test]
266+
fn test_clone() {
267+
let a = (1, ~"2");
268+
let b = a.clone();
269+
assert!(a.first() == b.first());
270+
assert!(a.second() == b.second());
271+
}

0 commit comments

Comments
 (0)