1 // Copyright 2017 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.
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.
11 #![feature(unboxed_closures)]
13 fn f<F: Fn<usize>>(_: F) {}
15 [1, 2, 3].sort_by(|| panic!());
16 //~^ ERROR closure is expected to take
17 [1, 2, 3].sort_by(|tuple| panic!());
18 //~^ ERROR closure is expected to take
19 [1, 2, 3].sort_by(|(tuple, tuple2)| panic!());
20 //~^ ERROR closure is expected to take
21 [1, 2, 3].sort_by(|(tuple, tuple2): (usize, _)| panic!());
22 //~^ ERROR closure is expected to take
24 //~^ ERROR closure is expected to take
26 //~^ ERROR closure is expected to take
28 let _it = vec![1, 2, 3].into_iter().enumerate().map(|i, x| i);
29 //~^ ERROR closure is expected to take
30 let _it = vec![1, 2, 3].into_iter().enumerate().map(|i: usize, x| i);
31 //~^ ERROR closure is expected to take
32 let _it = vec![1, 2, 3].into_iter().enumerate().map(|i, x, y| i);
33 //~^ ERROR closure is expected to take
34 let _it = vec![1, 2, 3].into_iter().enumerate().map(foo);
35 //~^ ERROR function is expected to take
36 let bar = |i, x, y| i;
37 let _it = vec![1, 2, 3].into_iter().enumerate().map(bar);
38 //~^ ERROR closure is expected to take
39 let _it = vec![1, 2, 3].into_iter().enumerate().map(qux);
40 //~^ ERROR function is expected to take
42 let _it = vec![1, 2, 3].into_iter().map(usize::checked_add);
43 //~^ ERROR function is expected to take
46 //~^ ERROR function is expected to take
50 fn qux(x: usize, y: usize) {}
52 fn call<F, R>(_: F) where F: FnOnce() -> R {}