File tree Expand file tree Collapse file tree 4 files changed +104
-1
lines changed
branches/dist-snap/src/test/run-pass Expand file tree Collapse file tree 4 files changed +104
-1
lines changed Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ refs/heads/try: c274a6888410ce3e357e014568b43310ed787d36
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9
- refs/heads/dist-snap: af163579ed674c4b1a37f5c8d50bf348722db439
9
+ refs/heads/dist-snap: 03111fb83b8c8c2c04939dfebb2fd3b9053aa462
10
10
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
11
11
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
12
12
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
Original file line number Diff line number Diff line change
1
+ // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ struct X {
12
+ a : int
13
+ }
14
+
15
+ trait Changer {
16
+ fn change ( mut self ) -> Self ;
17
+ }
18
+
19
+ impl Changer for X {
20
+ fn change ( mut self ) -> X {
21
+ self . a = 55 ;
22
+ self
23
+ }
24
+ }
25
+
26
+ pub fn main ( ) {
27
+ let x = X { a : 32 } ;
28
+ let new_x = x. change ( ) ;
29
+ assert_eq ! ( new_x. a, 55 ) ;
30
+ }
Original file line number Diff line number Diff line change
1
+ // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ struct X {
12
+ a : int
13
+ }
14
+
15
+ trait Changer {
16
+ fn change ( mut self ) -> Self {
17
+ self . set_to ( 55 ) ;
18
+ self
19
+ }
20
+
21
+ fn change_again ( mut ~self ) -> ~Self {
22
+ self . set_to ( 45 ) ;
23
+ self
24
+ }
25
+
26
+ fn set_to ( & mut self , a : int ) ;
27
+ }
28
+
29
+ impl Changer for X {
30
+ fn set_to ( & mut self , a : int ) {
31
+ self . a = a;
32
+ }
33
+ }
34
+
35
+ pub fn main ( ) {
36
+ let x = X { a : 32 } ;
37
+ let new_x = x. change ( ) ;
38
+ assert_eq ! ( new_x. a, 55 ) ;
39
+
40
+ let x = ~new_x;
41
+ let new_x = x. change_again ( ) ;
42
+ assert_eq ! ( new_x. a, 45 ) ;
43
+ }
Original file line number Diff line number Diff line change
1
+ // Copyright 2013 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ struct X {
12
+ a : int
13
+ }
14
+
15
+ trait Changer {
16
+ fn change ( mut ~self ) -> ~Self ;
17
+ }
18
+
19
+ impl Changer for X {
20
+ fn change ( mut ~self ) -> ~X {
21
+ self . a = 55 ;
22
+ self
23
+ }
24
+ }
25
+
26
+ pub fn main ( ) {
27
+ let x = ~X { a : 32 } ;
28
+ let new_x = x. change ( ) ;
29
+ assert_eq ! ( new_x. a, 55 ) ;
30
+ }
You can’t perform that action at this time.
0 commit comments