#![feature(unboxed_closures)] fn f>(_: F) {} fn main() { [1, 2, 3].sort_by(|| panic!()); //~^ ERROR closure is expected to take [1, 2, 3].sort_by(|tuple| panic!()); //~^ ERROR closure is expected to take [1, 2, 3].sort_by(|(tuple, tuple2)| panic!()); //~^ ERROR closure is expected to take [1, 2, 3].sort_by(|(tuple, tuple2): (usize, _)| panic!()); //~^ ERROR closure is expected to take f(|| panic!()); //~^ ERROR closure is expected to take f( move || panic!()); //~^ ERROR closure is expected to take let _it = vec![1, 2, 3].into_iter().enumerate().map(|i, x| i); //~^ ERROR closure is expected to take let _it = vec![1, 2, 3].into_iter().enumerate().map(|i: usize, x| i); //~^ ERROR closure is expected to take let _it = vec![1, 2, 3].into_iter().enumerate().map(|i, x, y| i); //~^ ERROR closure is expected to take let _it = vec![1, 2, 3].into_iter().enumerate().map(foo); //~^ ERROR function is expected to take let bar = |i, x, y| i; let _it = vec![1, 2, 3].into_iter().enumerate().map(bar); //~^ ERROR closure is expected to take let _it = vec![1, 2, 3].into_iter().enumerate().map(qux); //~^ ERROR function is expected to take let _it = vec![1, 2, 3].into_iter().map(usize::checked_add); //~^ ERROR function is expected to take call(Foo); //~^ ERROR function is expected to take } fn foo() {} fn qux(x: usize, y: usize) {} fn call(_: F) where F: FnOnce() -> R {} struct Foo(u8);