File tree 6 files changed +120
-0
lines changed
6 files changed +120
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Copyright 2015 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 < F , R > ( _: F ) where F : Fn ( ) -> R {
12
+ }
13
+
14
+ fn main ( ) {
15
+ f ( || -> ! { ( ) } ) ;
16
+ //~^ ERROR: computation may converge in a function marked as diverging [E0270]
17
+ }
Original file line number Diff line number Diff line change
1
+ // Copyright 2015 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 foo ( x : i32 ) {
12
+ |y| x + y
13
+ //~^ ERROR: mismatched types:
14
+ //~| expected `()`,
15
+ //~| found closure
16
+ //~| (expected (),
17
+ //~| found closure) [E0308]
18
+ }
19
+
20
+ fn main ( ) {
21
+ let x = foo ( 5 ) ( 2 ) ;
22
+ //~^ ERROR: expected function, found `()`
23
+ }
Original file line number Diff line number Diff line change
1
+ // Copyright 2015 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
+ trait Trait < ' a > {
12
+ type A ;
13
+ type B ;
14
+ }
15
+
16
+ fn foo < ' a , T : Trait < ' a > > ( value : T :: A ) {
17
+ let new: T :: B = unsafe { std:: mem:: transmute ( value) } ;
18
+ //~^ ERROR: cannot transmute to or from a type that contains type parameters in its interior [E0139]
19
+ }
20
+
21
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ // Copyright 2015 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 GradFn < F : Fn ( ) -> usize > ( F ) ;
12
+
13
+ fn main ( ) {
14
+ let GradFn ( x_squared) : GradFn < _ > = GradFn ( || -> usize { 2 } ) ;
15
+ let _ = x_squared ( ) ;
16
+ }
Original file line number Diff line number Diff line change
1
+ // Copyright 2015 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 Foo ;
12
+
13
+ impl Foo {
14
+ fn putc ( & self , b : u8 ) { }
15
+
16
+ fn puts ( & self , s : & str ) {
17
+ for byte in s. bytes ( ) {
18
+ self . putc ( byte)
19
+ }
20
+ }
21
+ }
22
+
23
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ // Copyright 2015 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
+ trait Trait < ' a > {
12
+ type A ;
13
+ type B ;
14
+ }
15
+
16
+ fn foo < ' a , T : Trait < ' a > > ( value : T :: A ) {
17
+ let new: T :: B = unsafe { std:: mem:: transmute_copy ( & value) } ;
18
+ }
19
+
20
+ fn main ( ) { }
You can’t perform that action at this time.
0 commit comments