File tree Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Expand file tree Collapse file tree 2 files changed +56
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Copyright 2012 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
+ // xfail-test
12
+ struct Thing {
13
+ x : int
14
+ }
15
+
16
+ impl Thing /*: Mul<int, Thing>*/ { //~ ERROR Look ma, no Mul!
17
+ pure fn mul ( c : & int ) -> Thing {
18
+ Thing { x : self . x * * c}
19
+ }
20
+ }
21
+
22
+ fn main ( ) {
23
+ let u = Thing { x : 2 } ;
24
+ let _v = u. mul ( & 3 ) ; // Works
25
+ let w = u * 3 ; // Works!!
26
+ io:: println ( fmt ! ( "%i" , w. x) ) ;
27
+
28
+ /*
29
+ // This doesn't work though.
30
+ let u2 = u as @Mul<int, Thing>;
31
+ let w2 = u2.mul(&4);
32
+ io::println(fmt!("%i", w2.x));
33
+ */
34
+ }
Original file line number Diff line number Diff line change
1
+ // Copyright 2012 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
+ mod buildings {
12
+ pub struct Tower { height : uint }
13
+ }
14
+
15
+ fn main ( ) {
16
+ let sears = buildings:: Tower { height : 1451 } ;
17
+ let h: uint = match sears {
18
+ buildings:: Tower { height : h } => { h }
19
+ } ;
20
+
21
+ io:: println ( h. to_str ( ) ) ;
22
+ }
You can’t perform that action at this time.
0 commit comments