File tree Expand file tree Collapse file tree 4 files changed +104
-1
lines changed
branches/try/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 2
2
refs/heads/master: 0da105a8b7b6b1e0568e8ff20f6ff4b13cc7ecc2
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
4
refs/heads/snap-stage3: a6d3e57dca68fde4effdda3e4ae2887aa535fcd6
5
- refs/heads/try: af163579ed674c4b1a37f5c8d50bf348722db439
5
+ refs/heads/try: 03111fb83b8c8c2c04939dfebb2fd3b9053aa462
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
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