File tree 4 files changed +111
-0
lines changed
4 files changed +111
-0
lines changed 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
+ fn f ( ) { }
12
+ struct S ( & fn ( ) ) ; //~ ERROR Illegal anonymous lifetime
13
+ pub static C : S = S ( f) ; //~ ERROR Illegal anonymous lifetime
14
+
15
+
16
+ fn g ( ) { }
17
+ type T = & fn ( ) ; //~ ERROR Illegal anonymous lifetime
18
+ pub static D : T = g; //~ ERROR Illegal anonymous lifetime
19
+
20
+ fn main ( ) { }
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
+ // xfail-test
12
+
13
+ struct TrieMapIterator < ' self > {
14
+ priv node : & ' self uint
15
+ }
16
+
17
+ fn main ( ) {
18
+ let a = 5 ;
19
+ let _iter = TrieMapIterator { node : & a} ; //~ ERROR bad
20
+ _iter. node = &
21
+ fail ! ( )
22
+ }
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
+ // xfail-test
12
+
13
+ fn main ( ) { & fail ! ( ) } //~ ERROR bad
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
+ // xfail-test
12
+
13
+ // Tests that everything still compiles and runs fine even when
14
+ // we reorder the bounds.
15
+
16
+ trait A {
17
+ fn a ( & self ) -> uint ;
18
+ }
19
+
20
+ trait B {
21
+ fn b ( & self ) -> uint ;
22
+ }
23
+
24
+ trait C {
25
+ fn combine < T : A +B > ( & self , t : & T ) -> uint ;
26
+ }
27
+
28
+ struct Foo ;
29
+
30
+ impl A for Foo {
31
+ fn a ( & self ) -> uint { 1 }
32
+ }
33
+
34
+ impl B for Foo {
35
+ fn b ( & self ) -> uint { 2 }
36
+ }
37
+
38
+ struct Bar ;
39
+
40
+ impl C for Bar {
41
+ // Note below: bounds in impl decl are in reverse order.
42
+ fn combine < T : B +A > ( & self , t : & T ) -> uint {
43
+ ( t. a ( ) * 100 ) + t. b ( )
44
+ }
45
+ }
46
+
47
+ fn use_c < S : C , T : B +A > ( s : & S , t : & T ) -> uint {
48
+ s. combine ( t)
49
+ }
50
+
51
+ fn main ( ) {
52
+ let foo = Foo ;
53
+ let bar = Bar ;
54
+ let r = use_c ( & bar, & foo) ;
55
+ assert_eq ! ( r, 102 ) ;
56
+ }
You can’t perform that action at this time.
0 commit comments