File tree Expand file tree Collapse file tree 6 files changed +120
-0
lines changed Expand file tree Collapse file tree 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