File tree 2 files changed +47
-3
lines changed
2 files changed +47
-3
lines changed Original file line number Diff line number Diff line change @@ -19,3 +19,31 @@ impl Clone for () {
19
19
#[ inline( always) ]
20
20
fn clone ( & self ) -> ( ) { ( ) }
21
21
}
22
+
23
+ macro_rules! clone_impl(
24
+ ( $t: ty) => {
25
+ impl Clone for $t {
26
+ #[ inline( always) ]
27
+ fn clone( & self ) -> $t { * self }
28
+ }
29
+ }
30
+ )
31
+
32
+ clone_impl ! ( int)
33
+ clone_impl ! ( i8 )
34
+ clone_impl ! ( i16 )
35
+ clone_impl ! ( i32 )
36
+ clone_impl ! ( i64 )
37
+
38
+ clone_impl ! ( uint)
39
+ clone_impl ! ( u8 )
40
+ clone_impl ! ( u16 )
41
+ clone_impl ! ( u32 )
42
+ clone_impl ! ( u64 )
43
+
44
+ clone_impl ! ( float)
45
+ clone_impl ! ( f32 )
46
+ clone_impl ! ( f64 )
47
+
48
+ clone_impl ! ( bool )
49
+ clone_impl ! ( char )
Original file line number Diff line number Diff line change 1
1
#[ deriving_clone]
2
2
struct S {
3
- foo : ( ) ,
4
- bar : ( )
3
+ _int : int ,
4
+ _i8 : i8 ,
5
+ _i16 : i16 ,
6
+ _i32 : i32 ,
7
+ _i64 : i64 ,
8
+
9
+ _uint : uint ,
10
+ _u8 : u8 ,
11
+ _u16 : u16 ,
12
+ _u32 : u32 ,
13
+ _u64 : u64 ,
14
+
15
+ _float : float ,
16
+ _f32 : f32 ,
17
+ _f64 : f64 ,
18
+
19
+ _bool : bool ,
20
+ _char : char ,
21
+ _nil : ( )
5
22
}
6
23
7
24
fn main ( ) { }
8
-
You can’t perform that action at this time.
0 commit comments